有人可以解釋爲什麼左連接需要得到所有結果? 如果我用一個簡單連接它會忽略在沒有目標已經拿下了比賽(0-0),我不明白爲什麼(因爲它是一個求和函數)左加入從sqlzoo#13的解釋
SELECT mdate,team1,
SUM(CASE WHEN teamid=team1 THEN 1 ELSE 0 END) score1 , team2,
SUM(CASE WHEN teamid=team2 THEN 1 ELSE 0 END) score2
FROM game LEFT JOIN goal ON (id = matchid)
GROUP BY mdate, matchid, team1, team2
感謝幫助
很難確定你有沒有完全限定你的列名(這意味着很難知道每列是從哪個表中獲得的)。但是,看起來如果沒有進球,沒有記錄會在目標表中。內部聯接(您的「簡單聯接」)將僅顯示兩個表中存在的記錄。所以只有那些進球得分的比賽。左連接將顯示左表(遊戲)中存在的所有記錄,而不管它們是否在右側(目標)中不是匹配記錄。 – Zec
如果沒有看到您的數據,我們只能假設有沒有目標的ganes。你需要一個外部連接來顯示任何沒有至少一個目標記錄的遊戲。 –