Du tar tag
- id:t,
- det lägsta datumet för det id:t och
- alla av namnen som hör till det.
Andra (normala) databaser tillåter inte ens den här frågan. De skulle tvinga dig att antingen använda en aggregerad funktion för namn , eller lägg till namn till group by
också. MySQL väljer istället ett slumpmässigt värde, och där är ditt problem.
För att lösa detta kommer din fråga att bli något mer komplex:
select
t.id,
t.mydate,
t.name
from
myTable t
where
t.mydate =
(select
min(td.mydate)
from
myTable td
where
td.id = t.id)
Eller:
select
t.id,
t.mydate as date,
t.name
from
myTable t
inner join
(select
td.id
min(td.mydate) as date
from
myTable td
group by
td.id) tx on tx.id = t.id and tx.date = t.mydate