Wielu potomków w relacjach rodzinnych w PHP

W poprzedniej lekcji ojciec mógł mieć tylko jednego syna. Osiągnięto to dzięki temu, że ojciec miał powiązanie son_id.

Załóżmy teraz, że ojciec może mieć wielu synów. W tym przypadku nadal możemy utworzyć tylko jedną tabelę, która będzie powiązana sama ze sobą. Tylko w polu powiązania będziemy przechowywać nie id syna, a id ojca. W tym przypadku wielu użytkowników będzie mogło odwołać się do swojego ojca - i w ten sposób ojciec będzie miał wielu synów:

users
id name father_id
1 user1 3
2 user2 3
3 user3 4
4 user4 null

Uzyskanie użytkownika wraz z jego ojcem można wykonać w następujący sposób:

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

Załóżmy, że mamy użytkowników. Każdy użytkownik ma ojca i matkę. Opisz strukturę przechowywania.

Задание 2

Napisz zapytanie, które pobierze użytkownika razem z jego ojcem i matką.