1
我有兩個表格,一個是城市(id和城市名稱),另一個是城市圖片(city_id等)。SQL左連接只返回一行而不是很多
假設我正在尋找名爲錫比烏的城市。這應該會返回3個結果,因爲表格中有更多的城市(Miercurea Sibiului,Sibiu,Poiana Sibiului),但它只返回一個。
另外,作爲說明,timeline_elements還沒有該城市的任何圖片。
SELECT cities_countries.*, COUNT(timeline_elements.city_id) as number_of_photos
FROM cities_countries
LEFT JOIN timeline_elements on (cities_countries.id = timeline_elements.city_id)
WHERE cities_countries.name LIKE '%Sibiu%'
這工作,但我不明白我做錯了什麼。你能花一些時間來解釋嗎?非常感謝 – SimeriaIonut
@SimeriaIonut [聚合函數](https://msdn.microsoft.com/zh-CN/library/ms173454.aspx)執行計算並單獨返回單個值,如果要將剩餘的列返回到您需要的值添加GROUP BY。所以你在SELECT中提到的列需要包含在GROUP BY中,除了聚合列名 – Arulkumar