Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment fonctionne une auto-jointure MYSQL ?

La façon dont j'essaierais de comprendre cela est d'écrire deux listes sur la première pièce étiquetée event1 et une event2. Ensuite, listez quelques enregistrements dans chaque liste (les listes seront identiques) en commençant maintenant par WHERE dans la description ci-dessous.

Nous prenons les données de deux tables (OK la même table utilisée deux fois, mais essayez de l'ignorer pour le moment)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

Il est probablement utile de lire le reste de bas en haut.

  WHERE event1.id=$id

Nous voulons donc l'enregistrement de event1 qui a l'identifiant d'enregistrement spécifié. Vraisemblablement, c'est exactement un enregistrement. Maintenant, nous déterminons le jour après la fin de cet événement.

 date_add(event1.enddate, INTERVAL 1 DAY)

Maintenant, cela nous indique les enregistrements de l'événement2, ils doivent commencer à cette date,

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

Nous avons maintenant deux enregistrements identifiés, quels champs voulons-nous ?

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

Oh, juste les champs de celui dont nous avons déterminé la date de début.