MySQL查询使用pivot创建Matrix视图

时间:2015-10-24 08:15:36

标签: mysql matrix pivot pivot-table

我有一个包含以下字段的表:

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

然而,这不是预期的演示......

提前致谢。

0 个答案:

没有答案