我读过很多关于只获取左连接的第一行的帖子,但是,出于某种原因,这对我来说并不适用.
这是我的 struct (当然简化了)
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
...
现在我想得到这些文章,只加入第一位艺术家,我想到了这样的事情:
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_艺术家,但这已经不起作用了.
我不能使用TOP
,因为我的数据库,我不能按feeds_artists.artist_id
对结果进行分组,因为我需要按日期对它们进行排序(我通过这种方式对结果进行分组,但结果不是最新的)
也try 了一些外部应用的东西——也没有成功.
解决方案:
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'