Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como funciona um MYSQL Self-Join?


A maneira como eu tentaria entender isso é escrever duas listas em uma parte rotulada como event1 e uma event2. Então liste alguns registros em cada lista (as listas serão idênticas) agora comece no WHERE na descrição abaixo.

Estamos pegando dados de duas tabelas (OK a mesma tabela usada duas vezes, mas tente ignorar isso por enquanto)
FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

Provavelmente ajuda ler o resto de baixo para cima.
  WHERE event1.id=$id

Portanto, queremos o registro de event1 que tenha o ID de registro especificado. Presumivelmente, isso é exatamente um registro. Agora descobrimos o dia após o término do evento.
 date_add(event1.enddate, INTERVAL 1 DAY)

Agora que nos diz os registros do event2, eles precisam começar nessa data,
ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)

Agora temos dois registros identificados, quais campos queremos?
SELECT event2.id, event2.startdate, event2.price

Oh, apenas os campos daquele cuja data de início descobrimos.