Saya memiliki tabel MySQL seperti ini:
User_Id course_name course_location course_id
1 course name 1 location 1 1
1 course name 2 location 2 2
1 course name 3 location 1 3
2 course name 2 location 1 2
2 course name 4 location 4 4
Bagaimana saya bisa mendapatkan data hasil seperti ini:
User_id course 1 course2 course3 course4
1 yes-location1 yes-location2 yes-location1 NULL
2 NULL yes-location1 NULL yes-location4
Jawaban:
Anda harus Pivot menggunakan data
GROUP BY
denganMAX
agregat dan menggunakanCASE
untuk menyaring olehUser_id
.Pertanyaan:
Contoh permintaan dalam SQL Fiddle .
Anda bisa menggantinya
course_location
denganCONCAT('YES-', course_location)
yang terdepanYES
memang dibutuhkan.Keluaran:
sumber
Pembuatan Meja:
Insersi:
Kumpulan hasil:
Kumpulan Hasil yang Diharapkan:
Larutan:
sumber