关于mysql:使用INNER JOIN的优势是什么?

Whats the advantage of using INNER JOIN?

本问题已经有最佳答案,请猛点这里访问。

我看到这个例子:

1
2
3
4
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;

生成与此示例相同的输出:

1
2
3
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders, Customers
WHERE Orders.CustomerID=Customers.CustomerID;

内部连接命令有什么优势吗?


前一个示例是标准的ANSI/ISO SQL。后一个示例不推荐使用SQL。前一种语法(ansi/iso)清楚地描述了连接标准;后一种(不推荐使用)语法中,连接标准与where子句过滤器混合在一起,使得排序变得更加困难。

对于像您这样简单的查询来说,这并不重要,但是当您必须处理更复杂的查询时(尝试12或15个表,混合使用左、右和内部联接!),您将理解为什么旧语法被弃用。


内部连接是为了清晰起见。在第二个示例中,使用WHERE可能会在更复杂的查询中丢失,从而使确定表的联接方式变得困难,并使解决问题变得更加困难。