Lets say I have three tables:
Table1
Id Score
1 2
2 5
3 5
Table2
Id Score
1 1
2 2
3 3
Table3
Id Score
1 4
2 4
3 2
如何从三个表中获取每个Id的最低值?因此,当我执行查询时,它会发布如下内容:
Id LowestScore
1 1
2 2
3 2
谢谢!
答案 0 :(得分:4)
您只需使用UNION
组合三个表中的记录并将其包装在子查询上,然后使用MIN()
获得每个ID
的最低分数。
SELECT ID, MIN(Score) Score
FROM
(
SELECT ID, Score FROM Table1
UNION ALL
SELECT ID, Score FROM Table2
UNION ALL
SELECT ID, Score FROM Table3
) sub
GROUP BY ID
输出
╔════╦═══════╗
║ ID ║ SCORE ║
╠════╬═══════╣
║ 1 ║ 1 ║
║ 2 ║ 2 ║
║ 3 ║ 2 ║
╚════╩═══════╝