sql >> Database teknologi >  >> RDS >> Mysql

Hvordan fungerer en MYSQL selvtilslutning?

Den måde, jeg ville forsøge at forstå dette på, er ved at skrive to lister ud på stykke et mærket begivenhed1 og en begivenhed2. Angiv derefter nogle få poster i hver liste (listerne vil være identiske) og start nu ved WHERE i beskrivelsen nedenfor.

Vi tager data fra to tabeller (OK, den samme tabel brugt to gange, men prøv at ignorere det for øjeblikket)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

Det hjælper nok at læse resten nedefra.

  WHERE event1.id=$id

Så vi vil have posten fra begivenhed1, der har det angivne post-id. Det er formentlig præcis én rekord. Nu finder vi ud af dagen efter, at begivenheden sluttede.

 date_add(event1.enddate, INTERVAL 1 DAY)

Nu, der fortæller os, at optegnelserne fra begivenhed2, de skal starte på den dato,

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

Vi har nu identificeret to poster, hvilke felter ønsker vi?

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

Åh, bare felterne fra den, hvis startdato vi fandt ud af.



  1. dbms_output.put_line

  2. Sporing af synkrone statistikopdateringer

  3. Sådan fjerner du "X Rows Selected" i SQLcl &SQL*Plus (Oracle)

  4. Adgang nægtet for brugeren 'root'@'localhost' med PHPMyAdmin