"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como encontrar eventos após outro evento por um número específico de dias no MySQL?

Como encontrar eventos após outro evento por um número específico de dias no MySQL?

Publicado em 2024-11-11
Navegar:931

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

Compreendendo as autojunções do MySQL

As autojunções, uma técnica usada em bancos de dados SQL, permitem consultar uma tabela em relação a si mesma. Nesse caso, nos aprofundaremos em uma auto-junção do MySQL para encontrar eventos com datas de início após outro evento por um número especificado de dias.

Detalhamento da consulta:

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. Extração de dados (FROM)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

Esta parte extrai dados de duas tabelas, mm_eventlist_dates, representadas como evento1 e evento2, para auto-junção.

2. Condição de junção (ON)

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

Esta condição define a junção entre as duas tabelas. Ele especifica que a data de início do evento2 deve ser igual a um dia após a data de término do evento1.

3. Filtragem (WHERE)

WHERE event1.id=$id

Este filtro limita os resultados a eventos que tenham um ID correspondente ao $id especificado.

4. Seleção de campo (SELECT)

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

Esta parte especifica quais campos da tabela event2 devem ser incluídos no conjunto de resultados: ID , data de início e preço.

Como funciona:

  1. A consulta começa extraindo dois conjuntos de registros da tabela mm_eventlist_dates.
  2. A condição de junção restringe o resultado filtrando registros de event2 cujas datas de início correspondem a um dia após as datas de término dos registros de event1.
  3. O filtro aplica o $id especificado pelo usuário para refinar ainda mais os registros de event1.
  4. Os resultados retornados incluem os campos desejados da tabela event2, que representam eventos que seguem o evento1 em um dia.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3