有 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
子句中,因此外部查询也不会。
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
子句中,因此外部查询也不会。