我有两个mySQL
语句。首先是:
SELECT o.OrderID, c.CustomerName, o.OrderDate
FROM Customers AS c, Orders AS o
WHERE c.CustomerID=o.CustomerID;
第二个是:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
两者都产生相同的结果,但是第二个不包含FROM请求中“客户”表上的引用。
我的问题是-这两个sql语句有什么区别?在什么情况下应该使用JOIN
,在什么情况下应该使用两个表中的简单SELECT
?
答案 0 :(得分:1)
它们相同,除了第二个更易于阅读,因此您应该使用那个。
答案 1 :(得分:0)
这些JOIN
不同,尽管结果相同。
第一个是CROSS JOIN
,并在where
中添加条件,该条件是隐式CROSS JOIN
第二个是INNER JOIN
如果要连接两个表,我将使用INNER JOIN
而不是CROSS JOIN
,因为inner join
表的意图更清楚