Anda harus dapat menerapkan fungsi agregat ke semua kolom dan kemudian GROUP BY id
:
select id,
max(name) name,
max(age) age,
max(grade) grade
from yourtable
group by id
Lihat SQL Fiddle dengan Demo
Sejauh struktur DB, satu-satunya masalah yang saya lihat adalah Anda memasukkan banyak catatan untuk pengguna yang sama. Anda harus menggunakan UPDATE
pernyataan untuk menggunakan nilai alih-alih menyisipkan.
Sepertinya Anda ingin menggunakan REPLACE
fungsi di MySQL (ini tutorialnya
).
Jadi kuerinya akan mirip dengan ini:
REPLACE
INTO yourtable (`id`, `name`, `age`, `grade`)
VALUES (0, 'john', 11, null);
Lihat SQL Fiddle dengan Demo