我看到this example:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
产生与此示例相同的输出:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders, Customers
WHERE Orders.CustomerID=Customers.CustomerID;
INNER JOIN命令有什么优势吗?
答案 0 :(得分:3)
您以前的示例是标准ANSI / ISO SQL。您的后一个示例是不推荐使用的SQL。使用前一种语法(ANSI / ISO),可以清楚地描述连接标准;使用后者(已弃用)语法,连接条件与where
子句过滤器混合使用,使得排序更加困难。
对于像你这样的简单查询来说,这并不重要,但是当你必须处理更复杂的查询时(尝试12或15个左,右和内连接混合的表!),你会理解为什么旧语法被弃用。
答案 1 :(得分:1)
INNER JOIN是为了清晰起见。在第二个示例中使用WHERE可能会在更复杂的查询中丢失,从而难以确定表的连接方式,并使解决问题变得更加困难。