LEFT JOIN only first row LEFT JOIN only first row mysql mysql

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'