我的SQL语句没有返回任何结果。我正在使用www.w3schools.com网站上的表格。我希望Customers表中的所有客户ID都匹配Orders表中的所有CustomerIDS。 SQL语句的作用是它通过表并检查每个CustomerID到每个Orders.CustomersID,当它找到匹配时,它不会返回该记录。
问题:当两个customerIDS相等时,为什么SQL不会返回该行,因为有值会返回true?
SQL语句:
SELECT * FROM Customers WHERE Customers.CustomersID = Orders.CustomersID;
最后一个想法:什么是最好的免费SQL数据库,可以下载而不会给家庭带来很多麻烦?
答案 0 :(得分:0)
试试这个:
SELECT Customers.*
FROM Customers
JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
答案 1 :(得分:0)
SELECT *
FROM Customers c
INNER JOIN Orders o on c.CustomerID = o.CustomerID;
答案 2 :(得分:0)
如果您只是希望有订单的客户使用:
SELECT *
FROM Customers
WHERE CustomerID IN
(SELECT CustomerID FROM Orders)
如果您使用JOIN
,则每位客户可能会获得多条记录(如果客户有多个订单)。您可以使用DISTINCT
解决这个问题,但恕我直言IN
条款更清晰(可能更快)