我有兩張桌子,一個足球比賽,一個進球。我試圖在兩人之間進行左連接的選擇,計算主客場進球數。表是這樣的:MySQL左加入和組
CREATE TABLE `matches` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`home_team_id` int(11) NOT NULL,
`away_team_id` int(11) NOT NULL
...
CREATE TABLE `match_goals` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`match_id` int(11) NOT NULL,
`team_id` int(11) NOT NULL,
`minute` int(11) NOT NULL
...
,並增加主隊的所有進球,我希望做這樣的事情:
SELECT *
FROM
(SELECT id, home_team_id, away_team_id from matches) m,
(SELECT count(*) AS score, match_id, team_id from match_goals group by match_id, team_id) g
WHERE m.home_team_id = g.team_id
ORDER by m.id
這應該帶回一行與球隊的得分,這可能BA正整數或0(或null)。
到目前爲止,我未能實現這一點 - 如果沒有進球,沒有任何排隊被返回。我究竟做錯了什麼?!任何幫助非常感謝(或鏈接到其他問題 - 我已經看了很多,但沒有找到我設法適應)。
謝謝!
託比
張貼了一份sqlfiddle和期望結果 – Strawberry