JOIN语句获取MAX值

时间:2016-06-07 11:26:32

标签: mysql sql

我有两个表(userI_S),I_S表包含一个名为score的列。我需要从表中获得最高分和相应的用户名。

我使用左连接,但我一直收到错误

  

未知栏' I_S.total_score'在'字段列表'

这是我使用的查询。

SELECT MAX(interview_sessions.total_score) 
FROM interview_sessions as sc 
LEFT JOIN user as u on sc.user_id = u.user_id 

4 个答案:

答案 0 :(得分:1)

尝试使用:

SELECT MAX(sc.total_score) 
FROM interview_sessions as sc 
LEFT JOIN user as u on sc.user_id = u.user_id 

答案 1 :(得分:1)

SELECT DISTINCT users.name, I_S.score FROM users 
LEFT JOIN I_S ON I_S.user_id = users.user_id WHERE score IN (SELECT MAX(score) FROM I_S)

所有拥有最高分数的用户。

我认为你应该在查询中写sc.total_score而不是interview_sessions.total_score因为你使用了别名

答案 2 :(得分:0)

您需要一个内部查询来首先确定什么是最高分。表格,重新加入到最高分数的面试会议表。然后加入用户获取名称。有可能多人拥有相同的最高分数。

select
   from
      ( SELECT MAX(i_s.total_score) as MaxScore
           from interview_sessions i_s ) maxAll
      JOIN interview_sessions i_s2
         on maxAll.MaxScore = i_s2.total_score
         JOIN User u
            on i_s2.user_id = u.user_id

答案 3 :(得分:0)

试试这种方式

select b.*,a.totalscore  from user b
inner join( select userid,max(total_score) as totalscore from I_S) a on a.userid=b.userid