如何从MySQL中的多个表中选择最小的数字?

时间:2013-05-09 14:51:40

标签: php mysql

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

谢谢!

1 个答案:

答案 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 ║
╚════╩═══════╝