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:

users
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:

sqlSELECT
  users.name as user_name,
  fathers.name as father_name
FROM
  users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Задание 1

Să presupunem că avem utilizatori. Fiecare utilizator are un tată și o mamă. Descrieți structura de stocare.

Задание 2

Scrieți o interogare care va prelua utilizatorul împreună cu tatăl și mama sa.