2013-09-28 20 views
0

鏈接多個表的鏈接,
有機會我會輸出不同的結果,如果我呼籲在FROM條款以不同的順序要鏈接的列名,由=操作?
例如:在SQL中連接表。經柱from子句

SELECT *  
FROM tbl1 
JOIN tbl2 on tbl1.colX = tbl2.colX 
JOIN tbl3 on tbl2.colY = tbl3.colY 

要弄清楚我要求,在接下來的塊我交換位置爲tbl2.colXtbl1.colX

SELECT *  
FROM tbl1 
JOIN tbl2 on tbl2.colX = tbl1.colX 
JOIN tbl3 on tbl2.colY = tbl3.colY 

回答

2

沒有,在RDBMS列的順序「等於」運算符是100%的等價物。

我更喜歡第二種形式。首先將依賴的列置於「等於」連接條件中。例如,當我加入來自客戶的訂單時,join ORDER on ORDER.FK_CUSTOMER=CUSTOMER.ID

我也想打電話給我的主鍵ID和我的外鍵FK_<TableOrRole>。很好,很清楚。

1

不,不要緊。但JOIN語句的順序可能會影響結果。但是如果你關心列的順序,你應該按照你需要的順序(在SELECT之後和FROM之前)指定它們。另外,如果你沒有使用所有連接表中的所有數據,那麼你不需要選擇全部。

+0

(內部)連接的順序如何影響結果? –