我读了许多关于仅获得左联接的第一行的主题,但是由于某种原因,这对我不起作用。
这是我的结构(当然是简化的)
提要
id | title | content ---------------------- 1 | Feed 1 | ...
艺人
artist_id | artist_name ----------------------- 1 | Artist 1 2 | Artist 2
feeds_artists
rel_id | artist_id | feed_id ---------------------------- 1 | 1 | 1 2 | 2 | 1 ...
现在,我想获取文章并仅加入第一位艺术家,我想到了这样的事情:
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'
只是仅获取feeds_artists的第一行,但已经行不通了。
TOP由于数据库原因,我无法使用,也无法按结果feeds_artists.artist_id对结果进行分组(因为我需要按日期对它们进行排序(我通过这种方式对结果进行分组,但是结果不是最新的))
TOP
feeds_artists.artist_id
也尝试使用OUTER APPLY进行尝试-也不成功。老实说,我无法想象这些行中发生了什么-可能是我无法使它起作用的最大原因。
解:
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'
@Matt Dodges的回答使我走上了正确的轨道。再次感谢您提供所有答案,在此期间,这对很多人都有所帮助。像这样工作: