2015-02-07 66 views
-1

我想比较行结果并在特定列具有相同的fightID时创建新列。比较行结果并创建新列

我的查询:

 
Fight Fight Date Player PlayerScore 
1  2014-10-10 Kevin 8 
1  2014-10-10 Chris 4 
2  2014-09-01 Kevin 8 
2  2014-09-01 Eric 4 

我想要的结果:

 
Fight Fight Date Player1 Result1 Player2 Result2 
1  2014-10-10 Kevin 8  Chris 4 
2  2014-09-01 Kevin 8  Eric 4 

顺便说一句 - 我是新来的,一般

PHP/MySQL和编程PHP

SELECT fight.fightdato, fight.fightID, players.name, 
     playersfight.playerid, playersfight.playerScore 
FROM fight 
INNER JOIN playersfight ON fight.fightID = playersfight.fightID 
INNER JOIN players ON playersfight.playerID = players.playersID 

结果

Thanks fo fo帮助我!

回答

1

您需要再次加入playerplayerfight表格。

是这样的:在一排

  1. 结果与加入同一玩家两次:

    SELECT fight.fightID, fight.fightdato, 
         p1.name as 'Player_1', pf1.playerid as 'PlayerID_1', pf1.playerScore as 'Result_1', 
         p2.name as 'Player_2', pf2.playerid as 'PlayerID_2', pf2.playerScore as 'Result_2'   
    FROM fight 
    JOIN playersfight pf1 ON fight.fightID = pf1.fightID 
    JOIN players p1  ON pf1.playerID = p1.playersID 
    JOIN playersfight pf2 ON fight.fightID = pf2.fightID 
    JOIN players p2  ON pf2.playerID = p2.playersID 
    WHERE p1.playersID < p2.players2 
    

    WHERE条款与条件p1.playersID < p2.players2排除两种情况,我们不想回来了。

  2. 重复 - 例如对于身份证号码为12的玩家,将返回与玩家ID为(1,2)(2,1)两次相同的战斗。现在它只会返回第一个排列。
+0

2行中缺少分号。 感谢您的帮助:) – Lasse 2015-02-07 19:57:25

+0

是的,我已经修复它,谢谢。 – 2015-02-07 20:08:00