比较mysql中同一个表的两行的列

时间:2017-07-06 05:12:47

标签: mysql

我有一个包含玩家历史的表名player_history。在此表中有列player_id,Final_position,meeting_code,race_no和beaten_time。如果一名球员站在第一或第二位置,时间将是相同的,会议代码有一天,每次会议代码最多有10场比赛。

我想选择那些第一和第二位置时间不相同的记录。

player_id Meeting_Code race_no final_position beaten_time
  1         0001          1         1             2
  2         0001          1         2             2
  1         0001          2         1             5
  2         0001          2         2             6        
... so on

输出应为:

player_id Meeting_Code race_no final_position beaten_time
  1         0001          2         1             5
  2         0001          2         2             6 

此外,如果不正确,我只想更新第一个位置的记录。

3 个答案:

答案 0 :(得分:0)

让表名为Test。尝试自我加入或类似的东西:

Select t1.player_id t1.Meeting_Code t1.race_no t1.final_position t1.beaten_time
From Test t1
LEFT JOIN Test t2 ON t1.beaten_time != t2.beaten_time.

试试这样。它可能会奏效。

答案 1 :(得分:0)

检查一下它是否可行

SELECT *
FROM   table_name
GROUP BY player_id
HAVING count(beaten_time) = 1;

答案 2 :(得分:0)

试一试:

select b.player_id,b.meeting_code,b.race_no,b.final_position,b.beaten_time 
from player_history a,player_history b
where  a.race_no = b.race_no and a.beaten_time != b.beaten_time;