"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment rechercher des événements suivant un autre événement selon un nombre de jours spécifique dans MySQL ?

Comment rechercher des événements suivant un autre événement selon un nombre de jours spécifique dans MySQL ?

Publié le 2024-11-11
Parcourir:312

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

Comprendre les auto-jointures MySQL

Les auto-jointures, une technique utilisée dans les bases de données SQL, vous permettent d'interroger une table sur elle-même. Dans ce cas, nous allons explorer une auto-adhésion MySQL pour rechercher des événements dont les dates de début suivent un autre événement d'un nombre de jours spécifié.

Répartition des requêtes :

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. Extraction de données (FROM)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

Cette partie extrait les données de deux tables, mm_eventlist_dates, représentées par event1 et event2, pour l'auto-adhésion.

2. Condition de jointure (ON)

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

Cette condition définit la jointure entre les deux tables. Il spécifie que la date de début de l'événement 2 doit être égale à un jour après la date de fin de l'événement 1.

3. Filtrage (WHERE)

WHERE event1.id=$id

Ce filtre limite les résultats aux événements dont l'ID correspond au $id spécifié.

4. Sélection de champ (SELECT)

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

Cette partie spécifie quels champs de la table event2 doivent être inclus dans l'ensemble de résultats : ID , la date de début et le prix.

Comment ça marche :

  1. La requête commence par extraire deux ensembles d'enregistrements du table mm_eventlist_dates.
  2. La condition de jointure affine le résultat en filtrant les enregistrements event2 dont les dates de début correspondent un jour après les dates de fin des enregistrements event1.
  3. Le filtre applique l'identifiant $ spécifié par l'utilisateur à affiner davantage les enregistrements event1.
  4. Les résultats renvoyés incluent les champs souhaités de la table event2, qui représentent les événements qui suivent event1 d'un jour.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3