为什么这个正确退回订单的Order ID
,谁作出命令的人的Customer ID
和员工负责交易的Last Name
SQL多种自然内部联接
SELECT "OrderID", "CustomerID", "LastName"
FROM orders O
NATURAL INNER JOIN customers JOIN employees ON O."EmployeeID" = employees."EmployeeID";
而
SELECT "OrderID", "CustomerID", "LastName"
FROM orders O
NATURAL INNER JOIN customers NATURAL INNER JOIN employees;
返回0行?
我相信他们有共同的专栏。
Table orders OrderId EmployeeID CustomerID ...
Table employees EmployeeID ...
Table customers CustomerID ...
当您使用正确的(即明确的)连接时会发生什么? – 2014-10-06 09:49:49
无法重现:请参阅http://sqlfiddle.com/#!15/ff9db/3。它似乎甚至不区分大小写(但我可能在这一点上是错误的)。 – 2014-10-06 09:51:58
根据猜测,有*太多*常见的列,而一个意想不到的是匹配。不要使用自然连接,它们很糟糕。使用'INNER JOIN ... ON(...)'或者如果你必须使用'INNER JOIN ... USING(colname)'。 – 2014-10-06 09:56:09