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
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'
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 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!