Обьединение двух условий с разных таблиц (WHERE, COUNT) - MySQL

Узнай цену своей работы

Формулировка задачи:

Пытаюсь всячески разно объединить эти два условия, но никак не получается. Надо получить ИД конференций, которые заканчиваются завтра и выбрать те, где меньше 2 заявок (applications). Написал здесь раздельно чтобы было более понятен вопрос.
SELECT c.ID, c.DateEnd FROM conference c WHERE DateEnd = DATE_ADD(CURDATE(),INTERVAL 1 DAY)
 
SELECT a.ID, a.IDConf FROM application a GROUP BY a.IDConf HAVING COUNT(a.IDConf) >= 2

Решение задачи: «Обьединение двух условий с разных таблиц (WHERE, COUNT)»

textual
Листинг программы
SELECT c.ID, c.DateEnd, COUNT(a.ID) app_count 
FROM conference c 
JOIN application a ON  a.IDConf = c.ID
WHERE c.DateEnd >= DATE_ADD(CURDATE(),INTERVAL 1 DAY)
GROUP BY c.ID, c.DateEnd 
HAVING COUNT(a.ID) < 2

Объяснение кода листинга программы

В данном коде производится выборка данных из двух таблиц: 'conference' и 'application'.

  1. Выбираются необходимые поля: 'ID', 'DateEnd' из таблицы 'conference' и 'COUNT' из таблицы 'application'.
  2. Используется оператор JOIN для объединения строк из двух таблиц по полю 'IDConf'.
  3. В WHERE-условии задается критерий отбора: дата окончания конференции должна быть больше или равна текущей дате плюс один день.
  4. В GROUP BY-условии задается, что результаты выборки должны быть сгруппированы по полям 'ID' и 'DateEnd'.
  5. В HAVING-условии задается, что в каждой группе должно быть меньше двух записей.
  6. Результатом запроса будет список конференций, которые завершились не более одного дня назад, имеют меньше двух приложений и их ID.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5