2015-02-07 2 views
-1

특정 열의 fightID가 동일한 경우 행 결과를 비교하고 새 열을 만들고 싶습니다.행 결과 비교 및 ​​새 열 작성

내 쿼리 : BTW

 
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과 프로그래밍에 새로운 오전 :
 
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 

내가 결과를 원

: 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 

결과

감사합니다. 도와 줘!

답변

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 
    

    p1.playersID < p2.players2 조건을 가진 WHERE 절은 우리가 돌아왔다 싶지 않아 이가지 경우를 제외한다.

  2. 중복 - 예를 들어 ID가 12 인 플레이어의 경우 플레이어 ID가 (1,2)(2,1) 인 두 번 같은 시합이 반환됩니다. 이제 첫 번째 순열 만 반환합니다.
+0

세미콜론이 2 줄에 없습니다. 도움을 주셔서 감사합니다 :) – Lasse

+0

네, 고쳐 주셔서 감사합니다. –