我想比较行结果,并在特定列具有相同的fightID时创建新列。
我的查询:
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
导致php:
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
btw - 我是php / mysql和一般编程的新手
感谢您的帮助!
答案 0 :(得分:1)
您需要再次加入player
和playerfight
表格。
类似的东西:
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
子句排除了我们不希望返回的两种情况:
1
和2
的玩家,会有两次玩家ID (1,2)
和(2,1)
同一回合。现在它只返回第一个排列。