内部连接和交叉连接产生相同的结果

时间:2015-03-20 01:17:06

标签: mysql join

use classicmodels;

select Orders.OrderNumber,
       Customers.CustomerName,  Orders.Status, orders.shippeddate,
       Customers.Country
from Customers **cross join/inner join** Orders
on Customers.CustomerNumber = Orders.customerNumber
order by 1 asc

大家好,我真的很困惑为什么inner join在我的查询中与cross join的结果有什么不同?我认为cross join会产生笛卡尔积,但两个连接都给了我326行。我还看到某个地方我不应该使用非唯一数据?

1 个答案:

答案 0 :(得分:1)

来自MySQL JOIN文档:

  

在MySQL中,JOIN,CROSS JOIN和INNER JOIN是语法等价物   (他们可以互相替换)。在标准SQL中,它们不是   当量。 INNER JOIN与ON子句一起使用,使用CROSS JOIN   否则。