[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Количество записей с нужным ID
Dobrik
Добрый день, задача такая:

есть 2 таблицы

1. Таблица с ID человека и ФИО
2. Таблица работ где есть статус (1-6) и ИД выполняющего



Мне надо вывести 1 запросом количество работ с статусом "1" для каждого человека из таблицы 1.

Помогите пожалуйста ))) заранее благодарен
kaww
select `people`.*, count(*) as count from `people` join `work` on `work`.`man_id` = `people`.`id` where `work`.`status` = 1 group by `people`.`id`
Dobrik
Цитата (kaww @ 17.10.2013 - 01:39)
select `people`.*, count(*) as count from `people` join `work` on `work`.`man_id` = `people`.`id` where `work`.`status` = 1 group by `people`.`id`

Спасибо тебе добрый человек!)
Dobrik
Цитата (kaww @ 17.10.2013 - 01:39)
select `people`.*, count(*) as count from `people` join `work` on `work`.`man_id` = `people`.`id` where `work`.`status` = 1 group by `people`.`id`

Подскажи пожалуйста еще, как можно одним запросом все то же сделать + добавить столбцы с количеством на разным статусам, 1,2 ,3 ,4 итд. заранее спасибо )
kaww
субзапросами

select people.*,
(
select count (*) from work as t1 where t1.man_id=people.id and t1.status = 1) as count1,
(
select count (*) from work as t1 where t2.man_id=people.id and t1.status = 2) as count2,
(
select count (*) from work as t1 where t3.man_id=people.id and t1.status = 3) as count3,
(
select count (*) from work as t1 where t4.man_id=people.id and t1.status = 4) as count4
from people
Dobrik
Цитата (kaww @ 17.10.2013 - 11:33)
субзапросами

select people.*,
(
select count (*) from work as t1 where t1.man_id=people.id and t1.status = 1) as count1,
(
select count (*) from work as t1 where t2.man_id=people.id and t1.status = 2) as count2,
(
select count (*) from work as t1 where t3.man_id=people.id and t1.status = 3) as count3,
(
select count (*) from work as t1 where t4.man_id=people.id and t1.status = 4) as count4
from people

не получается sad.gif, помоги пож, напиши полный запрос, точнее чтоб было 2 запроса
kaww
это и есть весь запрос. подставь свои таблицы и поля. Только пробелы лишние откуда-то
select people.*,
(
select count(*) from work as t1 where t1.man_id=people.id and t1.status = 1) as count1,
(
select count(*) from work as t1 where t2.man_id=people.id and t1.status = 2) as count2,
(
select count(*) from work as t1 where t3.man_id=people.id and t1.status = 3) as count3,
(
select count(*) from work as t1 where t4.man_id=people.id and t1.status = 4) as count4
from people

Dobrik
Цитата (kaww @ 17.10.2013 - 01:39)
select `people`.*, count(*) as count from `people` join `work` on `work`.`man_id` = `people`.`id` where `work`.`status` = 1 group by `people`.`id`

А как сделать так чтоб показывало записи где количество работ 0 ?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.