仅从一个表中获取最大值

时间:2017-05-22 09:11:12

标签: mysql

我有两张桌子A和B:

答:

id v1
-----
1  12
2  9   (added after edit)
2  11
3  27    
3  23

B:

id v2
-----
1  13
3  10
2  10    
3  28

我想从B中选择每一行,其中v2在所有v2中最大,v1对应于两个表中的id。 (编辑:我的意思是:向我显示B中的每一行,其中包括两个表中该id的单个最大值)。

结果应如下所示:

id  greatest (v1,v2)
--------------------
1  13
3  28

到目前为止,我能够通过以下两个表格展示最佳:

select distinct a.id, greatest(v1,v2) from a join b on a.id=b.id group by a.id;

导致:

id  greatest (v1,v2)
--------------------
1  13
2  11
3  28    

关于如何仅从B展示最大(v1,v2)的任何想法?

1 个答案:

答案 0 :(得分:0)

编辑:

SELECT b.id
     , MAX(v2) v2 
  FROM b 
  JOIN 
     ( SELECT id
            , MAX(v1) v1 
         FROM a 
        GROUP 
           BY id
     ) x 
    ON x.id = b.id 
   AND x.v1 <= b.v2 
 GROUP 
    BY id;