„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie rufe ich nur die erste Zeile in einem LEFT JOIN ab?

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

Veröffentlicht am 18.11.2024
Durchsuche:533

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 manchen Szenarien ist es wünschenswert, für jede Zeile in der linken Tabelle nur die erste Zeile aus der rechten Tabelle abzurufen.

Bedenken 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

Um die Feed-Artikel abzurufen 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'

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
)

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 mit der Zeit erhöhen. Infolgedessen ruft LEFT JOIN nur den ersten Künstler ab, der jedem Feed zugeordnet ist.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3