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.
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