2013-04-10 51 views
3

以下哪個示例是內部連接的最佳實踐?下面的例子很簡單,但是,如果涉及多個表格會怎樣? 你會選擇哪種方法?最佳實踐:Oracle SQL加入

例如查詢:

簡單

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date 
FROM suppliers, orders 
WHERE suppliers.supplier_id = orders.supplier_id; 

使用關鍵字INNER JOIN

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date 
FROM suppliers 
INNER JOIN orders 
ON suppliers.supplier_id = orders.supplier_id; 

回答

6

自1992年以來ANSI建議JOIN符號,以及關於可讀性,這是什麼,我會建議使用。

一切都已經表示對這個話題,但我只想提醒認爲,從邏輯上看它更有道理分離的連接從值的過濾器條件有2個原因:

+0

謝謝!我迷路了,現在我被發現了。 – milesmiles55 2013-04-10 13:55:15

+0

+1 @ Sebas - 聲明,加上我碰巧同意:) – 2013-04-10 14:02:18

0

我建議明確指出JOIN類型和使用ON子句。 但是你需要正確使用它。在你的例子中,你忘記了包含FROM子句和供應商表。

SELECT suppliers.supplier_id, 
     suppliers.supplier_name, 
     orders.order_date 
    FROM suppliers s INNER JOIN 
     orders o ON s.supplier_id = o.supplier_id; 
+0

剛剛改變它,謝謝。 – milesmiles55 2013-04-10 13:52:27

+1

你爲什麼要輸入'inner join'而不是'join'?您的工作是根據代碼大小定價的? – 2013-04-10 13:55:39

+0

@EgorSkriptunoff爲了便於閱讀。這五個角色對你有什麼影響嗎? – peterm 2013-04-10 14:01:52

0

在功能方面兩種情況,並加入相同..

+2

要清楚,這兩種形式都是連接,但一個在WHERE子句中具有_join條件(s)_,而另一個在顯式ON子句中具有連接條件。 – Wiseguy 2013-04-10 14:09:13