Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggabungkan Berbilang Nama Pelakon ke dalam Lajur Tunggal setiap Filem dalam SQL?
Mengusahakan pangkalan data filem selalunya memerlukan meringkaskan maklumat pelakon untuk setiap filem. Ini melibatkan penggabungan berbilang nama pelakon yang dikaitkan dengan satu filem ke dalam satu entri lajur.
PostgreSQL menyediakan fungsi string_agg()
, sesuai untuk tugasan ini. Berikut ialah pertanyaan yang menunjukkan penggunaannya:
<code class="language-sql">SELECT movie, string_agg(actor, ', ') AS actors FROM tbl GROUP BY movie;</code>
Pertanyaan ini:
movie
: Menentukan lajur yang memegang tajuk filem.actor
: Menentukan lajur penyenaraian nama pelakon.string_agg(actor, ', ')
: Fungsi ini menggabungkan nama pelakon untuk setiap filem, memisahkannya dengan koma dan ruang.GROUP BY movie
: Kumpulkan hasil, memastikan satu baris setiap filem.Fungsi string_agg()
cemerlang dalam menggabungkan berbilang baris menjadi nilai rentetan tunggal. Di sini, ia mencipta senarai pelakon yang dipisahkan koma untuk setiap filem.
Untuk senarai pelakon yang diisih, masukkan klausa ORDER BY
dalam string_agg()
:
<code class="language-sql">string_agg(actor, ', ' ORDER BY actor) AS actors</code>
Walau bagaimanapun, subkueri selalunya menawarkan prestasi yang lebih baik untuk pengisihan.
string_agg()
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Berbilang Nama Pelakon ke dalam Lajur Tunggal setiap Filem dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!