我有一個select statement需要我到join多個表(4 個表)。
我的表如下:
- 團隊

- Team_User

- 比賽_用戶

- 錦標賽

我需要teams從certain tournament. 我的邏輯如下:
在Tournament_User表中我可以找到users在 a 中的那些tournament。在Team_User我可以找到users那些在team.
為了從某個比賽中獲得球隊,我嘗試了以下方法query:
SELECT t.id FROM Teams t
JOIN Team_User tu on tu.team_id = t.id
JOIN Tournament_User tru on tru.user_id = tu.user_id
JOIN Tournaments tr on tr.id = tru.tournament_id
WHERE tr.id = "tournamentId";
它讓我得到了correct teams,但它是duplicates他們。
我還添加了DISTINCT它,它可以讓我找到正確的團隊并且不復制它們,但我想知道我是否可以按預期使用 onlyjoins和 without檢索記錄DISTINCT。
另外,我的記錄不能包含重復項,也沒有重復項,我設法根據我的查詢將它們重復了。
uj5u.com熱心網友回復:
我認為您的架構中有一個用戶表。團隊和用戶之間存在多對多關系,用戶和錦標賽之間存在多對多關系。這意味著每個錦標賽將與許多用戶相關,這反過來意味著即使所有用戶都來自同一個團隊,您的查詢結果也會與給定錦標賽中來自該團隊的用戶一樣多。這些表之間關系的性質要求您使用 DISTINCT。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/452523.html
下一篇:SQL|根據每列的日期值計數
