我有两个表(user
和I_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
答案 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