Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Hanya Baris Pertama dalam JOIN KIRI untuk Suapan Tertentu?

Bagaimana untuk Mendapatkan Hanya Baris Pertama dalam JOIN KIRI untuk Suapan Tertentu?

Barbara Streisand
Lepaskan: 2024-11-11 00:06:02
asal
245 orang telah melayarinya

How to Retrieve Only the First Row in a LEFT JOIN for a Specific Feed?

LEFT JOIN Hanya Baris Pertama

Dalam dunia pertanyaan pangkalan data, operasi LEFT JOIN ialah alat yang berkuasa untuk menggabungkan data daripada berbilang meja. Walau bagaimanapun, kadangkala anda mungkin menghadapi cabaran untuk mengambil semula baris pertama sahaja dari LEFT JOIN secara terpilih, yang membawa kepada kekeliruan dan keputusan yang kelihatan tidak berjaya.

Satu senario sedemikian melibatkan pengambilan hanya artis pertama yang dikaitkan dengan suapan. Pertimbangkan struktur pangkalan data yang dipermudahkan berikut:

  • Suapan: id, tajuk, kandungan
  • Artis: artis_id, nama_artis
  • feeds_artists: rel_id, artist_id, feed_id

Untuk mendapatkan semula suapan yang ditetapkan dan artis pertama yang sepadan, pendekatan intuitif mungkin melibatkan sesuatu seperti berikut:

SELECT *
FROM feeds 
LEFT JOIN feeds_artists ON feeds.id = (
  SELECT
    feeds_artists.feed_id
  FROM feeds_artists
  WHERE
    feeds_artists.feed_id = feeds.id 
  LIMIT 1
)
WHERE
  feeds.id = '13815'
Salin selepas log masuk

Walau bagaimanapun, pertanyaan ini mungkin tidak menghasilkan hasil yang diingini. Sebaliknya, cuba pertanyaan dioptimumkan berikut:

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'
Salin selepas log masuk

Dalam pertanyaan ini, muslihatnya terletak pada menggunakan pertanyaan sebaris dalam pernyataan LEFT JOIN. Pertanyaan sebaris ini memilih artist_id artis terawal yang dikaitkan dengan setiap suapan, dengan memanfaatkan andaian bahawa ID artis meningkat dari semasa ke semasa. Akibatnya, pertanyaan yang terhasil mendapatkan semula baris yang diingini, mempamerkan kuasa pertanyaan pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Hanya Baris Pertama dalam JOIN KIRI untuk Suapan Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan