我讀了很多關於只獲取左連接的第一行的線程,但由於某種原因,這對我不起作用。LEFT JOIN只有第一行
這是我的結構(簡化當然)
訂閱
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
結果按日期對它們進行排序(我通過編組他們這樣得到的結果,但結果不何處最新)
嘗試了一些與外部應用 - 以及沒有成功。 說實話,我真的不能想象在這些行中發生了什麼 - 可能是我無法得到這個工作的最大原因。
SOLUTION:
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'
https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html – Sinux 2016-06-21 03:12:12
這裏是解決方案https://stackoverflow.com/a/7588442/612987 – 2018-01-13 16:40:31