我有一个包含以下字段的表:
p1
p2
s1
s2
其中p1 - > player1,p2 - > player2,s1 - > game1,s2 - > GAME2 球员的数量可以从3到10不等。 该表具有它们之间的结果。 我们假设我们有4名球员: TIM,ROB,NICK,GEORGE 和他的比赛:
p1 p2 s1 s2
TIM ROB 4 0
NICK GEORGE 4 0
TIM NICK 0 4
ROB GEORGE 4 0
TIM GEORGE 4 0
ROB NICK 4 0
我想用查询生成的内容是这样的:
TIM ROB NICK GEORGE
TIM X 4-0 0-4 4-0
ROB 0-4 X 4-0 4-0
NICK 0-4 4-0 X 4-0
GEORGE 0-4 0-4 0-4 X
是否可以拥有上述内容?
到目前为止,我唯一能做到的就是使用GROUP_CONCAT和CONCAT结合使用以下查询:
SELECT RT.Player1, GROUP_CONCAT(CONCAT(RT.Player2,':',RT.Result1,'-', RT.Result2) SEPARATOR '\n'))
FROM
(SELECT R.p1 AS Player1, R.p2 AS Player2, R.s1 AS Result1, R.s2 AS Result2 FROM fab_matches AS R
UNION ALL
SELECT R.p2 AS Player1, R.p1 AS Player2, R.s2 AS Result1, R.s1 AS Result2 FROM fab_matches AS R) AS RT
然而,这不是预期的演示......
提前致谢。