Mai mulți descendenți în relațiile de rudenie în PHP
În lecția precedentă, un tată putea avea doar
un singur fiu. Acest lucru se realiza datorită faptului că
tatăl avea relația son_id.
Să presupunem acum că un tată poate avea mai mulți fii.
În acest caz, putem face în continuare
doar un tabel, care va fi legat
de sine î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 prelua utilizatorul împreună cu tatăl și mama sa.