Das erste Kind in der Datenbank hat keine Bedeutung, Sie können das erste Kind durch das Minimum der id
erhalten oder das Minimum des Werts, aber die Werte werden nicht in einer bestimmten Reihenfolge in der Tabelle gespeichert, sodass Sie nicht erkennen können, welcher Wert der erste ist.
Aber unter der Annahme, dass die id
eine automatisch inkrementelle Spalte ist, dann ist der Wert des ersten untergeordneten Elements der Wert der minimalen id
, dann können Sie Folgendes tun:
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;
Sehen Sie es hier in Aktion:
Das ergibt:
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |
Oder: Sie können es durch den Mindestwert erhalten:
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;
Sehen Sie es in Aktion:
Das ergibt:
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |