Il n'y a aucune signification du premier enfant dans la base de données, vous pouvez obtenir le premier enfant par le minimum de l'id
ou le minimum de la valeur, mais les valeurs ne sont pas stockées dans un ordre spécifique dans la table, vous ne pouvez donc pas dire quelle valeur est la première.
Mais, en supposant que le id
est une colonne auto-incrémentielle, alors la valeur du premier enfant est la valeur du minimum id
, alors vous pouvez faire ceci :
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;
Voyez-le en action ici :
Cela vous donnera :
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |
Ou : Vous pouvez l'obtenir par la valeur minimale :
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;
Voyez-le en action :
Cela vous donnera :
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |