2015-04-19 1 views
4

У меня есть таблица, и мне нужно получить количество строк, используя разные критерии. В настоящее время я использую 3 запросов один за другим:Как объединить три разных запроса в mysql, когда существует несколько критериев?

  1. SELECT COUNT (статус) FROM проектов WHERE проекта = '1'
  2. SELECT COUNT (статус) FROM проектов WHERE проекта = '1' AND статус> '10'
  3. SELECT COUNT (статус) FROM проектов WHERE проекта = '1' AND статус> '20'

Как объединить эти запросы в одном запросе?

P.S. Существует 30 различных статусов, поэтому статус GROUP BY не является большим выбором.

ответ

5

Вы можете использовать UNION так:

SELECT COUNT(status), ('1') as info FROM projects WHERE project='1' 
UNION 
SELECT COUNT(status), ('1-10') as info FROM projects WHERE project='1' AND status>'10' 
UNION 
SELECT COUNT(status), ('1-20') as info FROM projects WHERE project='1' AND status>'20' 

Подробнее на:

https://dev.mysql.com/doc/refman/4.1/en/union.html

+0

Спасибо! Это делает работу. – Jeff

+2

@Jeff Добро пожаловать Джефф, не забудьте проверить, как принято, если вы не знаете, как читать это http://stackoverflow.com/tour –

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