如何将以下查询组合成mysql

时间:2013-06-18 10:18:23

标签: mysql join

第一次查询

    select b.id , b.value,b.name from table_1 b where b.id = 900;

结果:

  id     value    name
 900     5027      AA
 900     79426     BB   
 900     132276    CC
 900     302885    DD

第二次查询

select a.id , max(a.value) from table_1 a where a.id = 900 group by a.id ;

RESULT

 id     value
900     302885

现在我想要像

这样的结果
  id      value   name
  900     302885    DD

提前致谢...

4 个答案:

答案 0 :(得分:1)

使用你的第一个查询但是在where子句中选择你想要的值...这可以通过使用select MAX()语句来完成

select b.id , b.value,b.name 
from table_1 b 
where b.id = 900 and 
b.value = (
    select max(a.value) from table_1 a where a.id = 900 group by a.id
)

答案 1 :(得分:1)

如果您想获取最大ID的数据,请尝试以下方法:

SELECT a.id, a.value, a.name 
    FROM table_1 a 
    WHERE NOT EXISTS (SELECT * FROM table_1 b WHERE a.id < b.id)

答案 2 :(得分:1)

试试这个,

select * 
from Table1 t1 
where t1.value=(select MAX(value) 
                from Table1 t2 
                where t1.id=t2.id) 
AND t1.id=900; 

SQLFiddle Demo

答案 3 :(得分:0)

SELECT * FROM table_1 t
WHERE value = (SELECT MAX(value) FROM table_1 s WHERE t.id = s.id)
AND t.id = 900

有关如何操作的其他示例,请参阅手册条目The Rows Holding the Group-wise Maximum of a Certain Column

看到它在sqlfiddle中正常工作。