MySQL中的JOIN和简单SELECT有什么区别?

时间:2018-11-03 12:59:46

标签: mysql sql

我有两个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

2 个答案:

答案 0 :(得分:1)

它们相同,除了第二个更易于阅读,因此您应该使用那个。

答案 1 :(得分:0)

这些JOIN不同,尽管结果相同。

第一个是CROSS JOIN,并在where中添加条件,该条件是隐式CROSS JOIN

第二个是INNER JOIN

如果要连接两个表,我将使用INNER JOIN而不是CROSS JOIN,因为inner join表的意图更清楚