我有以下查詢:MySQL的左連接(我認爲)難度
SELECT
u.username as username,
s.campaignno as campaign,
if(f.hometeamscore>f.awayteamscore,1,0) as Win,
if(f.hometeamscore=f.awayteamscore,1,0) as Draw,
if(f.hometeamscore<f.awayteamscore,1,0) as Loss,
f.hometeamscore as Goals,
ss.seasonid as Season,
av.avatar as Avatar
FROM
avatar_avatar av,
straightred_fixture f,
straightred_userselection s,
auth_user u,
straightred_season ss
WHERE
av.user_id = u.id
AND ss.seasonid = 1025
AND f.soccerseasonid = ss.seasonid
AND s.fixtureid = f.fixtureid
AND s.teamselectionid = f.hometeamid
AND s.user_id = u.id;
此查詢工作正常,但現在我已經意識到,用戶可能還沒有上傳資料圖片。所以下面的部分av.user_id = u.id
是排除沒有上傳個人資料圖片的人。我覺得在閱讀以下https://www.w3schools.com/sql/sql_join.asp
之後我需要使用左連接,但我只是繼續繞圈轉,並且無處可去。
對此的任何指導將不勝感激,非常感謝,艾倫。
你說得對,你需要一個左連接。使用'FROM'語句中的所有表格與使用'INNER JOIN'相同,因此您需要添加表格的'LEFT JOIN'。此外,代碼縮進可以更好地理解SQL。另外,看看這個教程:https://www.sitepoint.com/understanding-sql-joins-mysql-database/ –
你有什麼嘗試?它應該只涉及用'[INNER | LEFT] JOIN'替換FROM中的所有古代逗號,並將相應的連接條件移出WHERE並將ON子句移入適當的連接。 _如果加入的表格被儘可能相鄰排列,這通常也會有所幫助。_ – Uueerdo
代碼縮進是一個簡單但聰明的想法,我會繼續並在遵循兩個建議的同時執行此操作。非常感謝,將會回報。 –