2017-01-25 60 views
0

當在SQL中連接兩個表並指定要在「ON」子句中使用的列時,應在左側寫入哪一列? 例如假設我有兩個表A和B.SQL連接練習

SELECT * 
FROM A 
INNER JOIN B 
ON A.somecolumn= B.somecolumn 

SELECT * 
FROM A 
INNER JOIN B 
ON B.somecolumn= A.somecolumn 

我知道不要緊對DBMS,但有沒有什麼好的做法還是...?

+0

沒有規矩:)所以做你想做的。然而,我的習慣是先列出** A **。 –

+2

我想說,無論您選擇哪種方式,**都必須保持一致**。至少在查詢或過程中。 – SqlZim

+0

我通常按照聯接中表的相同順序編寫列。我覺得它更可讀。 –

回答

0

像所有評論說:

沒有技術上的理由來訂購這種或那種方式。

大多數情況下,我按照與表格相同的順序使用連接列,就像您在第一個示例中那樣。但是,如果數據庫SQL語法允許它,並且我們需要一個equi連接,我更喜歡USING子句 - 如果連接列對這兩個表具有(或者具有)相同的名稱,那麼它將起作用;那麼這將是:

SELECT * 
FROM A 
INNER JOIN B 
USING(somecolumn) 

如果你很懶惰(但小心使用,並可能寧願爲特設比,如果你想要把查詢到生產) - 天然玩加入... 。

玩的開心 -

馬爾科理智