Ich habe viele Threads darüber gelesen, nur die erste Zeile eines linken Joins zu erhalten, aber aus irgendeinem Grund funktioniert dies bei mir nicht.
Hier ist meine Struktur (natürlich vereinfacht)
Einspeisungen
id | title | content
----------------------
1 | Feed 1 | ...
Künstler
artist_id | artist_name
-----------------------
1 | Artist 1
2 | Artist 2
feeds_artists
rel_id | artist_id | feed_id
----------------------------
1 | 1 | 1
2 | 2 | 1
...
Jetzt möchte ich die Artikel bekommen und mich nur dem ersten Künstler anschließen, und ich dachte an so etwas:
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'
nur um nur die erste Zeile der feeds_artists zu bekommen, aber das funktioniert schon nicht.
Ich kann es TOP
aufgrund meiner Datenbank nicht verwenden und ich kann die Ergebnisse nicht gruppieren, feeds_artists.artist_id
da ich sie nach Datum sortieren muss (ich habe Ergebnisse erhalten, indem ich sie auf diese Weise gruppiert habe, aber die Ergebnisse waren nicht die neuesten).
Versuchte auch etwas mit OUTER APPLY - auch kein Erfolg. Um ehrlich zu sein, kann ich mir nicht wirklich vorstellen, was in diesen Reihen vor sich geht - wahrscheinlich der Hauptgrund, warum ich das nicht zum Laufen bringen kann.
LÖSUNG:
SELECT *
FROM feeds f
LEFT JOIN artists a ON a.artist_id = (
SELECT artist_id
FROM feeds_artists fa
WHERE fa.feed_id = f.id
LIMIT 1
)
WHERE f.id = '13815'