使用postgresql,我有两个表(用户和live_user_data),它们具有唯一的ID,可以在两个表之间进行联接,两个表都有用户ID,但是一个表具有用户级别(空值和1到50)。
live_user_data包含记录用户级别的每个实例,因此它包含成千上万个实例,因此,当执行简单的联接查询时,我将获得每个用户的每个级别的结果。我想要得到的结果仅显示所有用户的列表,并列出其user_level的最大值。
表:用户
id system_id user_id
1 001 John Smith
2 002 Jacob Smith
3 001 John Smith
4 003 Steve Smith
5 002 Jacob Smith
表:live_user_data
system_id level
002 1
002 7
001 10
003 4
002 15
答案 0 :(得分:3)
您需要连接两个表并使用Group By构造
SELECT users.id, users.systemid, MAX(live_user_data.level)
FROM users
LEFT OUTER JOIN live_user_data
ON users.system_id = live_user_data.system_id
GROUP BY users.id, users.systemid