有 0 = 计数

HAVING 0 = COUNT

HAVING 0 = COUNT(1)) AS a

这是什么意思?

SELECT outr.*
  FROM Orders outr
 WHERE
EXISTS (   SELECT *
                    FROM (   SELECT ol.Orders_ID
                               FROM Orderlines AS ol
                              WHERE Status NOT IN ( 5, 6 )
                              GROUP BY ol.Orders_ID
                             HAVING 0 = COUNT(1)) AS a
                   WHERE outr.Orders_ID = a.Orders_ID)

AS a 是派生的 table 的别名。简体:

SELECT *
FROM (SELECT Orders_ID
      FROM Orderlines
      GROUP BY Order_ID
      HAVING 0 = COUNT(1)
     ) AS a

HAVING 0 = COUNT(1) 表示查询只会 return Orders_ID 计数为 0。请注意 COUNT(1)COUNT(*) 相同.

没有任何意义,因为 Orders_ID 永远不会存在并且计数为 0。

因此,派生的 table 永远不会 return 任何东西,并且由于它位于外部查询的 EXISTS 子句中,因此外部查询也不会。