我是SQL新手并且对"WHERE 1 IN"子句感到困惑,我的问题是:
让我们以w3schools的数据库为例.
如果我查询为:
SELECT C1.CustomerID From Customers C1
WHERE 1 IN
(SELECT COUNT(O1.CustomerID) FROM Orders O1
WHERE C1.CustomerID = O1.CustomerID);
Run Code Online (Sandbox Code Playgroud)
这个查询是什么意思?任何帮助将不胜感激,谢谢!
此查询表明客户的订单数为1.如果使用=以下方式编写,则可能更清晰:
SELECT C1.CustomerID
FROM Customers C1
WHERE 1 = (SELECT COUNT(O1.CustomerID)
FROM Orders O1
WHERE C1.CustomerID = O1.CustomerID
);
Run Code Online (Sandbox Code Playgroud)
子查询称为相关子查询,因为该WHERE子句具有来自外部查询的列.因此,对于每个客户,它计算与该客户ID匹配的订单数量.只有具有一个订单的客户才在结果集中.