«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как найти события, следующие за другим событием через определенное количество дней в MySQL?

Как найти события, следующие за другим событием через определенное количество дней в MySQL?

Опубликовано 11 ноября 2024 г.
Просматривать:265

How to Find Events Following Another Event by a Specific Number of Days in MySQL?

Понимание самосоединений MySQL

Самообъединения, метод, используемый в базах данных SQL, позволяет вам запрашивать таблицу сама по себе. В этом случае мы углубимся в самосоединение MySQL, чтобы найти события с датами начала, следующие за другим событием на указанное количество дней.

Разбивка запроса:

SELECT event2.id, event2.startdate, event2.price
FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 
ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)
WHERE event1.id=$id;

1. Извлечение данных (FROM)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

Эта часть извлекает данные из двух таблиц, mm_eventlist_dates, представленных как event1 и event2, для самостоятельного присоединения.

2. Условие соединения (ON)

ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)

Это условие определяет соединение между двумя таблицами. Он указывает, что дата начала события 2 должна быть равна одному дню после даты окончания события 1.

3. Фильтрация (WHERE)

WHERE event1.id=$id

Этот фильтр ограничивает результаты событиями, идентификатор которых соответствует указанному $id.

4. Выбор поля (SELECT)

SELECT event2.id, event2.startdate, event2.price

Эта часть определяет, какие поля из таблицы event2 должны быть включены в набор результатов: ID , дату начала и цену.

Как это работает:

  1. Запрос начинается извлекая два набора записей из таблицы mm_eventlist_dates.
  2. Условие соединения сужает результат путем фильтрации записей event2, даты начала которых совпадают на один день после дат окончания записей event1.
  3. Фильтр применяет указанный пользователем $id для дальнейшего уточнения записей event1.
  4. Возвращаемые результаты включают нужные поля из таблицы event2, которые представляют события, следующие за событием event1 на единицу. день.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3