Я читав багато тем про отримання лише першого ряду лівого з'єднання, але, чомусь, це не працює для мене.
Ось моя структура (спрощена звичайно)
Канали
id | title | content
----------------------
1 | Feed 1 | ...
Художники
artist_id | artist_name
-----------------------
1 | Artist 1
2 | Artist 2
feed_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'
просто отримати лише перший рядок каналів_artists, але це вже не працює.
Я не можу використовувати TOP
через свою базу даних і не можу групувати результати за тим, feeds_artists.artist_id
як мені потрібно сортувати їх за датою (я отримав результати, групуючи їх таким чином, але результати там, де не новітні)
Спробував щось із зовнішньою заявкою - також успіху теж немає. Якщо чесно, я не можу реально уявити, що відбувається в цих рядках - напевно, найбільша причина, чому я не можу це зробити.
РІШЕННЯ:
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'