"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo recuperar solo la primera fila en una UNIÓN IZQUIERDA?

¿Cómo recuperar solo la primera fila en una UNIÓN IZQUIERDA?

Publicado el 2024-11-18
Navegar:291

How to Retrieve Only the First Row in a LEFT JOIN?

Recuperar solo la primera fila en un LEFT JOIN

En SQL, realizar una operación LEFT JOIN puede generar varias filas de la tabla derecha siendo emparejado con una sola fila de la tabla de la izquierda. En algunos escenarios, es deseable recuperar solo la primera fila de la tabla derecha para cada fila de la tabla izquierda.

Considere la siguiente estructura de datos simplificada:

**Feeds**
id | title | content
----------------------
1  | Feed 1 | ...

**Artists**
artist_id | artist_name
-----------------------
1 | Artist 1
2 | Artist 2

**feeds_artists**
rel_id | artist_id | feed_id
----------------------------
1 | 1 | 1
2 | 2 | 1

Para recuperar los artículos del feed y asociar solo el primer artista a cada feed, se puede intentar la siguiente sintaxis:

SELECT *
FROM feeds
LEFT JOIN feeds_artists ON wp_feeds.id = (
    SELECT feeds_artists.feed_id FROM feeds_artists
    WHERE feeds_artists.feed_id = feeds.id
    LIMIT 1
)
WHERE feeds.id = '13815'

Sin embargo, es posible que este enfoque no produzca los resultados deseados. Para lograr el objetivo, considere la siguiente alternativa:

SELECT *
FROM feeds f
LEFT JOIN artists a ON a.artist_id = (
    SELECT
      MIN(fa.artist_id) a_id
    FROM feeds_artists fa 
    WHERE fa.feed_id = f.id
)

Esta modificación utiliza la función MIN() para determinar el artista con el ID más bajo, asumiendo que los ID de artista aumentan con el tiempo. Como resultado, LEFT JOIN solo recuperará el primer artista asociado con cada feed.

Último tutorial Más>

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