¿Cómo funciona una autounión de MySQL?
Una autounión en MySQL implica unir dos instancias de la misma tabla, normalmente con diferentes alias. Le permite comparar filas de la misma tabla según criterios específicos.
La consulta explicada
Desglosemos la consulta dada:
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
FROM Cláusula
Esto especifica a qué tablas unirse:
FROM mm_eventlist_dates event1 JOIN mm_eventlist_dates event2
La misma tabla, mm_eventlist_dates, se usa dos veces y tiene el alias de evento1 y evento2.
Cláusula ON
Esto une las dos instancias de la tabla según una condición:
ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)
Encuentra filas en el evento2 donde la fecha de inicio coincide con el día posterior a la fecha de finalización de la fila correspondiente en el evento1.
Cláusula WHERE
Esto filtra los resultados según la condición especificada:
WHERE event1.id=$id
Selecciona filas del evento1 donde el id coincide con la variable dada, $id.
Cláusula SELECT
Esto selecciona los campos deseados de las filas unidas:
SELECT event2.id, event2.startdate, event2.price
Recupera el ID, la fecha de inicio y el precio de la instancia event2, que contiene la información sobre los eventos posteriores al evento especificado (event1) por un día.
Demostración visual
Imagine que tiene los siguientes registros en mm_eventlist_dates tabla:
evento1.id | evento1.fecha de finalización | evento2.id | evento2.fecha de inicio |
---|---|---|---|
1 | 2023-03-01 | 2 | 2023-03-02 |
3 | 2023-03-03 | 4 | 2023-03-04 |
Con la consulta dada:
Esto demuestra cómo una autounión de MySQL le permite identificar filas relacionadas según criterios específicos, incluso dentro de la misma tabla.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3