你好,我有两张桌子
桌面播放器
id Player Position
1 Messi 1,2,4
2 C.Ronaldo 1,2,3
3 Neymar 2,3
表位置
id pos
1 CF
2 ST
3 WF
4 MF
我希望像这样输出
id player pos
1 Messi CF,ST,MF
2 C.Ronaldo CF,ST,WF
3 Neymar ST,WF
我的sql fidle http://sqlfiddle.com/#!2/bf206/1
答案 0 :(得分:1)
你真的不应该像这样使用逗号分隔的字段。难以阅读,效率低下,将来会引发重大问题。
然而,如果玩家的位置顺序不重要,可以按照你想要的那样做: -
SELECT a.id, a.Player, GROUP_CONCAT(b.pos)
FROM player a
INNER JOIN position b
ON FIND_IN_SET(b.id, a.position) > 0
GROUP BY a.id, a.player
为了保持订单你可以试试(未经测试): -
SELECT a.id, a.Player, GROUP_CONCAT(b.pos ORDER BY FIND_IN_SET(b.id, a.position))
FROM player a
INNER JOIN position b
ON FIND_IN_SET(b.id, a.position) > 0
GROUP BY a.id, a.player