Tôi đang cố gắng tham gia một chuỗi hai liên kết nhiều đến nhiều. Trong ví dụ này, mỗi đội có một số màu chưa được xác định và một số chưa được xác định đã giành được giải thưởng.Giá trị trùng lặp trong GROUP_CONCAT khi sử dụng hai nhiều người nhiều đến
Đây là schema:
Và đây là câu hỏi tôi đang sử dụng:
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
Vấn đề là màu sắc và các giải thưởng được nhân đôi. Hãy nói rằng A-Team có màu đỏ và màu xanh như màu sắc, và như giải thưởng TrollAward và DarwinAward ... kết quả tôi nhận được từ giao diện SQL như thế này:
name: "A-Team"
colours: "red,blue,red,blue"
awards: "TrollAward,DarwinAward,TrollAward,DarwinAward"
Tôi đã cố gắng để tham gia chỉ có một nhiều-to- nhiều, và hoạt động hoàn hảo, vì vậy tôi đoán tôi đang giám sát một cái gì đó với nhiều tham gia ...
Xem câu trả lời của tôi ở đây: [MySQL Group_Concat Giá trị lặp lại] (http://stackoverflow.com/questions/11486266/mysql-group-concat-repeating-values/11486365#11486365) –