mysql查询未返回任何行

mysql查询未返回任何行,mysql,Mysql,我使用此查询来获取总投票数最大的行,但此查询不返回任何行,实际上它应该返回1行。请帮忙 SELECT assembly, seat_code, CONCAT(first_name,' ',last_name), total_votes, party_id FROM polling JOIN seat USING (seat_id) JOIN candidate USING (candidate_id) WHERE seat_id=1 HAVING total_votes = MAX(

我使用此查询来获取总投票数最大的行,但此查询不返回任何行,实际上它应该返回1行。请帮忙

SELECT assembly, seat_code, CONCAT(first_name,' ',last_name), total_votes, party_id      
FROM polling JOIN seat USING (seat_id) JOIN candidate USING (candidate_id)
WHERE seat_id=1
HAVING total_votes = MAX(total_votes);
您可以使用MAX aggregate并删除HAVING子句。见下文:

SELECT * FROM
(
SELECT 
      assembly, 
      seat_code, 
      CONCAT(first_name,' ',last_name)name, 
      MAX(total_votes)total_votes, 
      party_id      
FROM polling JOIN seat USING (seat_id) JOIN candidate USING (candidate_id)
WHERE seat_id=1
) AS A
HAVING total_votes=(SELECT MAX(total_votes) FROM polling ) 

使用此子句

请显示示例数据。但为什么我们不能在此处使用HAVING子句?HAVING子句类似于WHERE子句,但仅适用于整个组,而WHERE子句适用于单个行。查询可以同时包含WHERE子句和HAVING子句。WHERE子句首先应用于表中的各个行。仅对满足WHERE子句中条件的行进行分组。HAVING子句随后应用于结果集中的行。只有满足HAVING条件的组才会显示在查询输出中
  select assembly, seat_code, concat(first_name,' ',last_name), total_votes, party_id     
from (polling join seat using(seat_id) join candidate using(candidate_id))
where seat_id=1 and total_votes=(select max(total_votes) from <table name>);