Nie ma znaczenia pierwszego dziecka w bazie danych, możesz uzyskać pierwsze dziecko przez minimalną wartość id
lub minimum wartości, ale wartości nie są przechowywane w określonej kolejności w tabeli, więc nie można stwierdzić, która wartość jest pierwszą.
Ale zakładając, że id
jest kolumną auto incremental, wtedy wartość pierwszego dziecka jest wartością minimalnego id
, możesz to zrobić:
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;
Zobacz to w akcji tutaj:
To da ci :
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |
Lub: Możesz to uzyskać za minimalną wartość:
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;
Zobacz to w akcji:
To da ci:
| PARENT | NAME | VALUE |
-------------------------
| 1 | aaa | 111 |
| 3 | ccc | 333 |