Maison >base de données >tutoriel mysql >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 ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-11 01:16:02666parcourir

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 trouver 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 précise 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 qui ont un identifiant correspondant 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, date de début et prix.

Comment ça marche :

  1. La requête commence par extraire deux ensembles d'enregistrements de mm_eventlist_dates table.
  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 le $id spécifié par l'utilisateur à d'autres affiner 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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn