Выбрать проекты у которых количество записей message меньше 2 и есть запись entered?

Есть таблица проектов и связующая таблица, в которой записан лог состояний проекта, как выбрать все проекты у которых есть запись entered, но записей типа message меньше 2?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@singhtless Автор вопроса
А все работает
SELECT *
FROM `projects`
WHERE exists(SELECT *
             FROM `logbook`
               INNER JOIN (SELECT project_id, count(*)
                           FROM logbook
                           WHERE state_id = 13 AND event_id = 20 AND `consider` = 1 HAVING count(*) < 2) message
                 ON `logbook`.`project_id` = `message`.`project_id`
             WHERE `projects`.`id` = `logbook`.`project_id` AND exists(SELECT *
                                                                       FROM `users`
                                                                       WHERE `logbook`.`user_id` = `users`.`id` AND
                                                                             `id` IN (3)) AND exists(SELECT *
                                                                                                     FROM `entities`
                                                                                                     WHERE
                                                                                                       `logbook`.`state_id`
                                                                                                       = `entities`.`id`
                                                                                                       AND `name` IN
                                                                                                           ('state3')) AND
                   exists(SELECT *
                          FROM `entities`
                          WHERE `logbook`.`event_id` = `entities`.`id` AND `name` IN ('took')))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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