Mai mulți descendenți în relațiile de rudenie în Python
În lecția anterioară, un tată putea avea doar
un singur fiu. Acest lucru se realiza datorită faptului că
tatăl avea o legătură son_id.
Să presupunem acum că un tată poate avea mai mulți
fii. În acest caz, putem face în continuare
doar un singur tabel, care va fi
legat de el însuși. Doar că în câmpul de legătură
vom stoca nu id-ul fiului, ci id-ul
tatălui. În acest caz, mai mulți utilizatori vor putea
face referire la tatăl lor - și astfel
tatăl va avea mai mulți fii:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Putem obține utilizatorul împreună cu tatăl său în felul următor:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Să presupunem că avem utilizatori. Fiecare utilizator are un tată și o mamă. Descrieți structura de stocare.
Scrieți o interogare care va extrage utilizatorul împreună cu tatăl și mama sa.