T-SQL: Menggabungkan Nama Pengguna daripada Berbilang Ulasan
Mengagregatkan data daripada berbilang jadual berkaitan ke dalam satu rentetan yang dipisahkan koma adalah keperluan yang kerap dalam pengurusan pangkalan data. Contoh ini menunjukkan pendekatan T-SQL untuk mencapai perkara ini, khususnya untuk hubungan banyak-ke-banyak antara Ulasan, Penyemak dan Pengguna.
Penyelesaian ringkas menggunakan subkueri menawarkan kaedah yang berkesan:
<code class="language-sql">SELECT r.ReviewID, r.ReviewDate, ( SELECT u.FName + ',' FROM @Users u INNER JOIN @Reviewers rs ON u.UserID = rs.UserID WHERE rs.ReviewID = r.ReviewID FOR XML PATH('') ) AS UserNames FROM @Reviews r</code>
Berikut ialah pecahan:
@Reviews
: Jadual ini menyimpan butiran ulasan (ReviewID, ReviewDate).@Reviewers
: Jadual ini memautkan ulasan dan penyemak (ReviewerID, ReviewID, UserID).@Users
: Jadual ini mengandungi maklumat pengguna (UserID, FName, LName).SELECT
dalam menyertai @Users
dan @Reviewers
untuk mendapatkan semula nama pertama (FName
) yang dikaitkan dengan setiap ulasan.FOR XML PATH('')
menggabungkan nilai FName
dengan cekap ke dalam satu rentetan, dipisahkan dengan koma.Pertanyaan ini mengumpulkan hasil dengan ReviewID
, menghasilkan output yang disatukan di mana setiap ulasan diwakili oleh satu baris, termasuk ReviewID
, ReviewDate
dan senarai dipisahkan koma bagi nama pertama pengguna yang berkaitan. Ini secara langsung menangani keperluan untuk menggabungkan berbilang nama pengguna yang berkaitan dengan setiap ulasan ke dalam satu rekod.
Atas ialah kandungan terperinci Bagaimana untuk Menghimpun dan Menggabungkan Nama Pengguna yang Dikaitkan dengan Berbilang Ulasan dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!