2015-02-21 2 views
0

Я использую этот запрос, чтобы получить строку, где total_votes являются максимальными, но этот запрос не возвращает строку, infact должен возвращать 1 строку. Пожалуйста помоги.mysql query не возвращает ни одной строки

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); 
+0

пожалуйста показывают выборочные данные. – Jens

ответ

0

Вы можете использовать MAX агрегат и удалите пункт 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) 
+0

Это не дает правильный результат –

+0

Я отредактировал свой ответ. вы можете попробовать еще раз – Rigel1121

0
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>); 

Используйте этот один

+0

, но почему мы не можем использовать предложение HAVING здесь? –

+0

Предложение HAVING похоже на предложение WHERE, но применяется только к группам в целом, тогда как предложение WHERE применяется к отдельным строкам. Запрос может содержать как предложение WHERE, так и предложение HAVING. Предложение WHERE применяется сначала к отдельным строкам в таблицах. Сгруппированы только строки, соответствующие условиям в предложении WHERE. Предложение HAVING затем применяется к строкам в наборе результатов. Только группы, которые соответствуют условиям HAVING, появляются в выводе запроса –

Смежные вопросы