Měli byste být schopni použít agregační funkci na všechny sloupce a poté GROUP BY id
:
select id,
max(name) name,
max(age) age,
max(grade) grade
from yourtable
group by id
Pokud jde o strukturu DB, jediný problém, který vidím, je, že vkládáte více záznamů pro stejného uživatele. Měli byste používat UPDATE
příkaz použít hodnoty místo vkládání.
Zdá se, že chcete použít REPLACE
funkce v MySQL (zde je návod
).
Dotaz by tedy byl podobný tomuto:
REPLACE
INTO yourtable (`id`, `name`, `age`, `grade`)
VALUES (0, 'john', 11, null);