Heim > Datenbank > MySQL-Tutorial > Wie rufe ich nur die erste Zeile in einem LEFT JOIN ab?

Wie rufe ich nur die erste Zeile in einem LEFT JOIN ab?

Susan Sarandon
Freigeben: 2024-11-07 18:01:02
Original
639 Leute haben es durchsucht

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

Nur ​​die erste Zeile in einem LEFT JOIN abrufen

In SQL kann die Ausführung einer LEFT JOIN-Operation zu mehreren Zeilen aus der rechten Tabelle führen wird einer einzelnen Zeile aus der linken Tabelle zugeordnet. In einigen Szenarien ist es wünschenswert, für jede Zeile in der linken Tabelle nur die erste Zeile aus der rechten Tabelle abzurufen.

Beachten Sie die folgende vereinfachte Datenstruktur:

**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
Nach dem Login kopieren

Zum Abrufen der Um Artikel zu füttern und jedem Feed nur den ersten Künstler zuzuordnen, kann die folgende Syntax versucht werden:

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'
Nach dem Login kopieren

Dieser Ansatz führt jedoch möglicherweise nicht zu den gewünschten Ergebnissen. Um das Ziel zu erreichen, ziehen Sie die folgende Alternative in Betracht:

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
)
Nach dem Login kopieren

Diese Modifikation verwendet die Funktion MIN(), um den Künstler mit der niedrigsten ID zu ermitteln, wobei davon ausgegangen wird, dass sich die Künstler-IDs im Laufe der Zeit erhöhen. Infolgedessen ruft der LEFT JOIN nur den ersten Künstler ab, der jedem Feed zugeordnet ist.

Das obige ist der detaillierte Inhalt vonWie rufe ich nur die erste Zeile in einem LEFT JOIN ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage