Der er ingen betydning af det første barn i databasen, du kan få det første barn ved at få et minimum af id
eller minimum af værdien, men værdierne er ikke gemt med en bestemt rækkefølge i tabellen, så du kan ikke se, hvilken værdi der er den første.
Men forudsat at id
er automatisk inkrementel kolonne, så er værdien af det første barn værdien af det mindste id
, så kan du gøre dette:
SELECT
t1.parent,
t2.name,
t1.value
FROM tablename AS t1
INNER JOIN
(
SELECT MIN(id) AS id, parent
FROM tablename
GROUP BY parent
) AS t22 ON t22.id = t1.id AND t1.parent = t22.parent
INNER JOIN tablename AS t2 ON t1.parent = t2.id;
Se den i aktion her:
Dette vil give dig:
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |
Eller: Du kan få det ved minimumsværdien:
SELECT
t1.parent,
t2.name,
MIN(t1.value) AS value
FROM tablename AS t1
INNER JOIN tablename AS t2 ON t1.parent = t2.id
GROUP BY t1.parent, t2.name;
Se det i aktion:
Dette vil give dig:
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |