Я хочу показать общее сообщение, где нравится 3 или больше;Выберите счет с суммой
У меня есть 3 таблицы
Таблица пост:
id_post | title
1 | Ganteng
2 | serigala
Таблица Пользователь
id_user | username
1 | mantan
2 | otong
3 | pak_pol
Таблица голосов:
id_vote | id_post | LIKE | id_user
1 | 1 | 1 | 2
2 | 1 | 1 | 1
3 | 1 | 1 | 3
4 | 2 | 1 | 1
5 | 2 | 1 | 2
6 | 2 | 1 | 3
Вот мой запрос:
$sql="SELECT COUNT(v.id_post) as total_post
FROM vote v
LEFT JOIN post p ON p.id_post=v.id_post
HAVING SUM(`like`) >= 3";
В мои ожидания, значение $ SQL должно быть 2 ... Но возвращение стоимости составляет 6
Любой ответ?
Большое спасибо
Вот почему ваш запрос не работает: 'COUNT (v.id_post)' подсчитывает все почтовые идентификаторы, которые не нуль, это верно для всех идентификаторов почтовых, т.е. все записи, т.е. 6. 'SUM (like)', добавляет все одинаковые значения, то есть 6 x 1 = 6. Это значение = = 3, поэтому вы показываете счетчик записей (6). В основном отсутствующий запрос - это предложение GROUP BY на идентификаторе сообщения, чтобы запрашивать голоса * за * идентификатор сообщения. –