2013-04-10 23 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