LEFT JOIN only first row
If you can assume that artist IDs increment over time, then the MIN(artist_id)
will be the earliest.
So try something like this (untested...)
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.feed_id ) a
Version without subselect:
SELECT f.title, f.content, MIN(a.artist_name) artist_name FROM feeds fLEFT JOIN feeds_artists fa ON fa.feed_id = f.idLEFT JOIN artists a ON fa.artist_id = a.artist_id GROUP BY f.id
@Matt Dodges answer put me on the right track. Thanks again for all the answers, which helped a lot of guys in the mean time. Got it working like this:
SELECT *FROM feeds fLEFT 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'