爲什麼這個正確退回訂單的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