Sql 为什么我的WHERE子句不返回Orders表中的CustomerID?
我的SQL语句没有返回任何结果。我正在使用www.w3schools.com网站上的表格。我想让我的Customers表中的所有customer ID与Orders表中的所有customer ID匹配。SQL语句的工作原理是遍历表并检查每个Orders.CustomerID的每个CustomerID,当找到匹配项时不会返回该记录 问题:当两个customerID相等时,SQL为什么不返回行,因为存在将返回true的值? SQL语句:Sql 为什么我的WHERE子句不返回Orders表中的CustomerID?,sql,Sql,我的SQL语句没有返回任何结果。我正在使用www.w3schools.com网站上的表格。我想让我的Customers表中的所有customer ID与Orders表中的所有customer ID匹配。SQL语句的工作原理是遍历表并检查每个Orders.CustomerID的每个CustomerID,当找到匹配项时不会返回该记录 问题:当两个customerID相等时,SQL为什么不返回行,因为存在将返回true的值? SQL语句: SELECT * FROM Customers WH
SELECT * FROM Customers WHERE Customers.CustomersID = Orders.CustomersID;
最后一个想法:什么是最好的免费SQL数据库,可以在家中下载而不需要很多麻烦?试试这个:
SELECT Customers.*
FROM Customers
JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
- 您需要这样的查询:
SELECT* 来自客户c c.CustomerID=o.CustomerID上的内部联接订单o代码>
- 这是一个非常重要的问题
- 选择最好的数据库对于stackoverflow来说是一个糟糕的问题。但答案是PostgreSQL。(还有许多其他DBMS也适合您。)
SELECT *
FROM Customers
WHERE CustomerID IN
(SELECT CustomerID FROM Orders)
如果您使用
JOIN
,则每个客户可能会获得多条记录(如果该客户有多个订单)。您可以使用DISTINCT
解决这个问题,但是子句中的更干净(可能更快)您没有指定SQL语句中的顺序。您需要某种类型的联接。FROM子句中存在语法错误。-->请记住,我正在w3schools浏览器中运行此操作,因为我尚未在公司服务器上收到正确的权限。-->对我来说,在w3schools网站上的工作方式就像一个champ,但必须修复您的列名(CustomerID而不是CustomerID),这是标准SQl,没有语法错误。可能您键入错误。没有为一个或多个必需参数提供值。-->结果是这样的。我正在运行这些示例-->--是在访问公司数据库之前我运行所有示例的位置。请更正,您可以避免重复,但由于子查询的原因,可能会花费更高的成本。另一种(更好的)删除重复项的方法是先加入,然后分组。