Bagaimana untuk Menyertai Jadual dengan Medan Nilai Dipisahkan Koma dalam SQL?

Susan Sarandon
Lepaskan: 2024-11-10 12:06:02
asal
328 orang telah melayarinya

How to Join Tables with Comma-Separated Value Fields in SQL?

Menyiasat Medan Gabungan Berbilang dengan Nilai Dipisahkan Koma

Dalam SQL, apabila berurusan dengan jadual yang mengandungi senarai dipisahkan koma (CSV) dalam bidang mereka, ia boleh menjadi mencabar untuk melaksanakan gabungan dengan berkesan. Artikel ini meneroka senario tertentu di mana lajur kategori dalam jadual filem mengandungi berbilang ID kategori dan matlamatnya adalah untuk mengecualikannya sepenuhnya sambil mengambil nama kategori yang sepadan daripada jadual kategori.

Jadual berikut menggambarkan senario :

Table categories:
-id-       -name-
1          Action
2          Comedy
4          Drama
5          Dance

Table movies:
-id-       -categories-
1          2,4
2          1,4
4          3,5
Salin selepas log masuk

Untuk melaksanakan gabungan yang diingini, kita boleh menggunakan fungsi find_in_set() bersama-sama dengan operasi group_concat(). Berikut ialah pertanyaannya:

select
    m.id,
    group_concat(c.name)
from
    movies m
    join categories c on find_in_set(c.id, m.categories)
group by
    m.id
Salin selepas log masuk

Penjelasan Pertanyaan:

  • find_in_set() menyemak sama ada subrentetan tertentu wujud dalam rentetan, dalam kes ini, jika a ID kategori daripada jadual kategori terdapat dalam CSV lajur kategori dalam filem jadual.
  • Klausa gabungan memautkan dua jadual berdasarkan keadaan find_in_set().
  • group_concat() menggabungkan semua nama kategori yang sepadan untuk setiap ID filem ke dalam satu rentetan.
  • Kumpulan mengikut klausa memastikan bahawa keputusan dikumpulkan mengikut ID filem, memberikan yang bersih dan teratur output.

Output yang terhasil memaparkan ID filem bersama-sama dengan nama kategori yang sepadan dalam format tatasusunan. Ini membolehkan akses mudah kepada kategori yang berkaitan tanpa perlu menyahkod CSV dalam jadual filem.

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual dengan Medan Nilai Dipisahkan Koma dalam SQL?. 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