这两个MySQL查询有什么区别?

时间:2013-04-18 12:34:05

标签: mysql join

SELECT COUNT( companyId )
FROM Companies
 LEFT JOIN Cities ON Cities.cityId = Companies.cityId
GROUP BY Companies.companyId;

VS

SELECT COUNT( companyId )
FROM Cities
 LEFT JOIN Companies ON Cities.cityId = Companies.cityId
GROUP BY Companies.companyId;

有什么区别?

3 个答案:

答案 0 :(得分:2)

在第一个查询中,左表是公司,在第二个查询中是城市。

  

LEFT JOIN关键字返回左表中的所有行   (table_name1),即使右表中没有匹配项   (table_name2)。

第一次查询

  

LEFT JOIN关键字返回Companies表中的所有行   ,即使CITY表中没有匹配项

第二次查询

  

LEFT JOIN关键字返回Cities表中的所有行   ,即使公司表中没有匹配项

Visual Representation of SQL Joins

答案 1 :(得分:1)

我只是放了一张照片(自我解释)

MySQL离开了JOIN

enter image description here

答案 2 :(得分:0)

在两个查询中左表总是为Cities,外连接查询中表的一侧是在“where / on”条件下确定的;你想知道吗?