Saya membaca banyak utas tentang mendapatkan hanya baris pertama dari gabungan kiri, tetapi, untuk beberapa alasan, ini tidak berfungsi untuk saya.
Ini struktur saya (tentu saja disederhanakan)
Feed
id | title | content
----------------------
1 | Feed 1 | ...
Artis
artist_id | artist_name
-----------------------
1 | Artist 1
2 | Artist 2
feeds_artists
rel_id | artist_id | feed_id
----------------------------
1 | 1 | 1
2 | 2 | 1
...
Sekarang saya ingin mendapatkan artikel dan hanya bergabung dengan Artis pertama dan saya memikirkan sesuatu seperti ini:
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'
hanya untuk mendapatkan hanya baris pertama dari feeds_artists, tetapi sudah ini tidak berfungsi.
Saya tidak dapat menggunakan TOP
karena basis data saya dan saya tidak dapat mengelompokkan hasil feeds_artists.artist_id
karena saya perlu mengurutkannya berdasarkan tanggal (saya mendapat hasil dengan mengelompokkannya dengan cara ini, tetapi hasil di mana bukan yang terbaru)
Mencoba sesuatu dengan OUTER BERLAKU juga - tidak berhasil juga. Sejujurnya saya tidak bisa membayangkan apa yang terjadi di baris itu - mungkin alasan terbesar mengapa saya tidak bisa mendapatkan ini berfungsi.
LARUTAN:
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'