Есть таблица items
;
id --- status
-------------
1 --- 0
2 --- 1
3 --- 1
4 --- 0
5 --- 1
Нужно ОДНИМ запросом, вывести кол-во строк со статусом: 0 (их 2) и кол-во строк со стаутсом 1( их 3). Пробовал через UNION - но поля именует не так как нужно.
SELECT count(*) AS `status_0` FROM `itemы` WHERE `status` = 0
UNION
SELECT count(*) AS `status_1` FROM `itemы` WHERE `status` = 1
Если я правильно понял, то Вам нужно получить одну строку с двумя колонками? А две строки с одной колонкой Вас не устраивает. Тогда это делается так
SELECT SUM(`status_0`) AS `status_0`, SUM(`status_1`) AS `status_1`
FROM (
SELECT count(*) AS `status_0`, 0 AS `status_1` FROM `items` WHERE `status` = 0
UNION
SELECT 0 AS `status_0`, count(*) AS `status_1` FROM `items` WHERE `status` = 1
)
Но я бы делал так
SELECT status, COUNT(*) FROM items GROUP BY status
select sum(case status when 0 then 1 else 0 end) status_0,
sum(case status when 1 then 1 else 0 end) status_1
from items
поля в таблице именуются по первому запросу если я не ошибаюсь, возможно стоит добавить столбец константу
SELECT 'status_0', count(*) AS
cntFROM
itemыWHERE
status= 0
UNION
SELECT 'status_1',count(*) AS
cntFROM
itemыWHERE
status= 1
если нужна одна запись
SELECT count(*) AS
cnt_0, c1.cnt_1
FROM itemы
Left join (select count(*) AS
cnt_1from
itemыwhere
status= 1) c1 on 1 = 1
WHERE status = 0
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть БД MySQL с таблицей mytable (column ID, column NAME), пишу приложение для вывода в файл HTML результатов выполнения хранимых процедур (вывести таблицу,...