powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подсчет количества строк разных типов из связанной таблицы - Оптимизация
7 сообщений из 7, страница 1 из 1
Подсчет количества строк разных типов из связанной таблицы - Оптимизация
    #39753354
Honcho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите, пожалуйста, оптимизировать запрос.

Сфера - социологические исследования, опросы. Есть две таблицы: polls - опросы (порядка 100 строк), tasks - задания по опросам (примерно 2000 на опрос), связаны по внешнему ключу tasks.polls_id . Каждое задание имеет один из четырех статусов: 10 - новое, 20 - в работе, 30 - на проверке, 40 - закрыто.

Задача: посчитать по каждому опросу количество заданий в разных статусах и вывести в одну строку.
Я написал такой запрос, и он работает:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT p.*, 
(select count(*) from tasks where polls_id = p.id and status = 10) as s10, 
(select count(*) from tasks where polls_id = p.id and status = 20) as s20, 
(select count(*) from tasks where polls_id = p.id and status = 30) as s30, 
(select count(*) from tasks where polls_id = p.id and status = 40) as s40 
FROM polls p left join tasks t on t.polls_id = p.id group by p.id;


но выглядит как-то неправильно, громоздко.
Помогите, пожалуйста.
...
Рейтинг: 0 / 0
Подсчет количества строк разных типов из связанной таблицы - Оптимизация
    #39753369
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторно выглядит как-то неправильно, громоздко.
он даже не выполнится.
...
Рейтинг: 0 / 0
Подсчет количества строк разных типов из связанной таблицы - Оптимизация
    #39753376
Honcho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow,

выполняется и выдает правильный результат.
...
Рейтинг: 0 / 0
Подсчет количества строк разных типов из связанной таблицы - Оптимизация
    #39753380
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT p.*, 
       SUM(t.status = 10) as s10, 
       SUM(t.status = 20) as s20, 
       SUM(t.status = 30) as s30, 
       SUM(t.status = 40) as s40 
FROM polls p 
left join tasks t on t.polls_id = p.id 
group by p.id;
...
Рейтинг: 0 / 0
Подсчет количества строк разных типов из связанной таблицы - Оптимизация
    #39753393
Honcho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Огромное спасибо! Это то, что нужно.
...
Рейтинг: 0 / 0
Подсчет количества строк разных типов из связанной таблицы - Оптимизация
    #39753992
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HonchoScareCrow,

выполняется и выдает правильный результат.
если выполняется то это очень старая версия MYSQL и результат невсегда правильный.
...
Рейтинг: 0 / 0
Подсчет количества строк разных типов из связанной таблицы - Оптимизация
    #39753993
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подсчет количества строк разных типов из связанной таблицы - Оптимизация
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]