0
 select a.col_name1,max(b.col_name2) from table_a , table_b b where
 a.candidate_id = 900 and a.col_name1 = b.col_name1 and a.col_name2=
  302885 group by b.candidate_id;

这是查询对我来说工作正常

但是当我使用 max(b.col_name2) 它给出了这个错误1111 invalid use of group function

select a.col_name1,max(b.col_name2) from table_a , table_b b where
a.candidate_id = 900 and a.col_name1 = b.col_name1 and a.col_name2=
max(b.col_name2)group by b.candidate_id;

我如何max(b.col_name2)使用价值

请帮助我。在此先感谢..

4

4 回答 4

0

此外,始终使用显式 JOIN 语法...

SELECT a.col_name1
     , MAX(b.col_name2) 
  FROM table_a a
  JOIN table_b b 
    ON b.col_name1 = a.col_name1 
 WHERE a.candidate_id = 900 
 GROUP 
    BY b.candidate_id
HAVING a.col_name2 = MAX(b.col_name2);
于 2013-06-18T11:14:21.533 回答
0

仅仅因为您的查询运行并不意味着它“运行良好”。

Mysql 有一些奇怪的分组功能。

尝试这个:

select
  a.col_name1,
  max(b.col_name2)
from table_a
join table_b b
  on a.col_name1 = b.col_name1
where a.candidate_id = 900
and a.col_name1 = b.col_name1
and a.col_name2 = 302885
group by a.col_name1;

更正/改进:

  • 格式化
  • 连接语法
  • 按列分组
于 2013-06-18T10:09:41.113 回答
0

尝试这个

   select a.col_name1,max(b.col_name2) 
   from table_a , table_b b 
   where a.candidate_id = 900 
   and a.col_name1 = b.col_name1 
   group by b.candidate_id 
   having a.col_name2= max(b.col_name2)

或者

   select a.col_name1,max(b.col_name2) 
   from table_a , table_b b 
   where a.candidate_id = 900 
   and a.col_name1 = b.col_name1 
   and  a.col_name2 in ( select max(col_name2) from table_b)
   group by b.candidate_id 
于 2013-06-18T10:01:55.870 回答
0

使用 Group By 时,需要在 Have 子句中指定组的 where 子句:

select a.col_name1,
  max(b.col_name2) 
from table_a , table_b b 
where a.candidate_id = 900 and 
  a.col_name1 = b.col_name1 
group by b.candidate_id
having a.col_name2 = max(b.col_name2)
于 2013-06-18T10:05:37.540 回答