2015-10-20 559 views
2

一般來說,有沒有結果集或查詢性能之間的任何差別:JOIN USING和JOIN ON有什麼區別?

SELECT * FROM tableA JOIN tableB USING (id); 

SELECT * FROM tableA ta JOIN tableB tb ON (ta.id = tb.id); 

如果是這樣,有什麼區別?

優點/缺點使用一個比其他?

回答

8

當你說USING,則列在查詢區別對待:

  • 兩個表必須具有join鍵相同的列和名稱。 (我認爲這是一個很好的做法,無論如何,但USING需要它。)
  • 用於連接只能查詢中不包含的其他表別名使用的密鑰。
  • 如果你做SELECT *,那麼連接鍵只返回一次。
+0

「兩個表必須具有相同的列和名稱」。你的意思是,連接鍵的列名稱相同,對嗎? –

+0

@ЕгорРогов。 。 。是。固定。 –