2013-04-18 105 views
-5
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; 

的區別是什麼?這兩個MySQL查詢有什麼區別?

+2

你跑過了嗎? –

+1

查看左連接中的左端是什麼意思,你就會得到你的答案。 – ceejayoz

+0

做作業? – Kawu

回答

2

在第一個查詢左表是Companies並在第二個查詢Cities中。

的LEFT JOIN關鍵字返回左表 (table_name1)的所有行,即使在右表 (table_name2)不匹配。

第一個查詢

的LEFT JOIN關鍵字返回從公司表 所有行,即使有在城市表查詢

沒有匹配

SECOND

LEFT JOIN關鍵字返回來自Cities表 的所有行,即使再有在公司表

Visual Representation of SQL Joins

+0

@evodevo你明白了現在的區別 – PSR

+0

檢查我的答案 – elsadek

1

我只是將圖片放在沒有匹配(自我介紹)

的MySQL LEFT JOIN

enter image description here

0
兩個

查詢左表總是Cities,外連接查詢中表的一側在「where/on」co中確定ndition;你想知道嗎?