Tôi có ba bảng:JOIN và GROUP_CONCAT với ba bảng
users: sports: user_sports:
id | name id | name id_user | id_sport | pref
---+-------- ---+------------ --------+----------+------
1 | Peter 1 | Tennis 1 | 1 | 0
2 | Alice 2 | Football 1 | 2 | 1
3 | Bob 3 | Basketball 2 | 3 | 0
3 | 1 | 2
3 | 3 | 1
3 | 2 | 0
Bảng user_sports
liên kết users
và sports
với một thứ tự ưu tiên (pref
).
tôi cần phải thực hiện một truy vấn mà trả về này:
id | name | sport_ids | sport_names
---+-------+-----------+----------------------------
1 | Peter | 1,2 | Tennis,Football
2 | Alice | 3 | Basketball
3 | Bob | 2,3,1 | Football,Basketball,Tennis
Tôi đã thử với JOIN
và GROUP_CONCAT
nhưng tôi nhận được kết quả kỳ lạ.
Tôi có cần phải thực hiện truy vấn lồng nhau không?
Bất kỳ ý tưởng nào?
bạn có thể đăng thói quen group_concat của mình không hoạt động không? Dường như chính xác những gì bạn cần (xem trang này: http://stackoverflow.com/questions/276927/can-i-concatenate-multiple-mysql-rows-into-one-field), vì vậy nó có thể hữu ích cho bạn xem queryt o xác định nó đã đi sai như thế nào. – user158017