Задать вопрос
@apptimeru

Подсчитать количество строк при разных условиях в одном запросе?

Всем привет, подскажите пожалуйста есть таблица с комментариями, нужно 2 таких простых запроса объединить в один:

SELECT COUNT(id) as one_count FROM comments WHERE user_id = $user_id AND post_id != 1

SELECT COUNT(id) as two_count FROM comments WHERE user_id = $user_id AND post_id = 1


т.е. Нужно знать сколько комментариев всего от определенного пользователя за минусом комментов определенного поста и нужно также знать сколько комментариев конкретно к этому посту.

И вообще если ли смысл объединять все это в один запрос в целях оптимизации?

Зарание всем большое спасибо за помощь.
  • Вопрос задан
  • 820 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
SELECT COUNT(id) as `count`, "one" as `name` FROM comments WHERE user_id = $user_id AND post_id != 1
UNION
SELECT COUNT(id) as `count`, "two" as `name` FROM comments WHERE user_id = $user_id AND post_id = 1

count | name
=============
12 | one
234 | two
Ответ написан
@nelson
SELECT 
SUM( IF(post_id != 1, 1, 0) ) as one_count,  
SUM( IF(post_id = 1, 1, 0) ) as two_count
FROM comments 
WHERE user_id = $user_id
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы