Rumah > Soal Jawab > teks badan
Untuk memudahkan penjelasan masalah, saya telah mempermudahkan jadual hubungan banyak-ke-banyak dengan jumlah 3 medan
id wid uid
Kini saya berharap untuk mengetahui setiap wid (tidak berganda) dalam kumpulan wid 5 uid pertama yang sepadan (susun mengikut had id 5)
Iaitu, keputusan akhir ialah
wid1 = [uid, uid, uid, uid ...]
wid2 = [uid , uid, uid, uid ...]
Bolehkah saya terus menggunakan sql untuk mendapatkan hasil seperti itu?
黄舟2017-05-16 13:14:25
Andaikan bahawa nama jadual ini adalah sementara demo_table
Anda boleh menggunakan pernyataan berikut untuk mencapai keperluan anda
SELECT
wid,
SUBSTRING_INDEX(GROUP_CONCAT(uid ORDER BY id),',',5) AS 'uids'
FROM demo_table
GROUP BY wid
ringa_lee2017-05-16 13:14:25
Idea @deepgoing adalah baik untuk menyelesaikan masalah pertindihan dan pengisihan uid, anda boleh melakukan pertanyaan distcint dahulu, seperti:
SELECT
wid,
SUBSTRING_INDEX(GROUP_CONCAT(uid ORDER BY id),',',5) AS 'uids'
FROM (
SELECT DISTINCT wid, uid
FROM demo_table
ORDER BY wid, uid
)
GROUP BY wid