Er is geen betekenis van het eerste kind in de database, u kunt het eerste kind krijgen door het mininum van de id
of het minimum van de waarde, maar de waarden worden niet met een specifieke volgorde in de tabel opgeslagen, dus u kunt niet zien welke waarde de eerste is.
Maar, ervan uitgaande dat de id
is een automatische incrementele kolom, dan is de waarde van het eerste kind de waarde van de minimale id
, dan kun je dit doen:
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;
Bekijk het hier in actie:
Dit geeft je:
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |
Of: Je kunt het krijgen met de minimumwaarde:
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;
Zie het in actie:
Dit geeft je:
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |