我試圖在兩個多對多關聯中得到一個字符串。在這個例子中,每個團隊都有不確定數量的顏色,並且不確定的數量贏得了獎項。使用兩個多對多時在GROUP_CONCAT中重複值
這是架構:
這是我使用的查詢:
SELECT
teams.name AS name,
GROUP_CONCAT(colours.name) AS colours,
GROUP_CONCAT(awards.name) AS awards
FROM
teams
-- join colours
INNER JOIN teams_to_colours
ON teams.id = teams_to_colours.team_id
INNER JOIN colours
ON teams_to_colours.colour_id = colours.id
-- join awards
INNER JOIN teams_to_awards
ON teams.id = teams_to_awards.team_id
INNER JOIN awards
ON teams_to_awards.award_id = awards.id
WHERE
teams.name="A-Team"
GROUP BY
teams.id
的問題是,顏色和獎項得到複製。比方說,A-團隊有紅色和藍色的顏色,並作爲獎勵TrollAward和DarwinAward ......結果我從SQL看起來像這樣得到:
name: "A-Team"
colours: "red,blue,red,blue"
awards: "TrollAward,DarwinAward,TrollAward,DarwinAward"
我曾嘗試加入僅僅是許多-TO-許多和完美的作品,所以我想我的東西監督與多加入...
在這裏看到我的答案:[MySQL Group_Concat重複值](http://stackoverflow.com/questions/11486266/mysql-group-concat-repeating-values/11486365#11486365) –