Viacerí potomkovia v rodinných vzťahoch v Pythone
V predchádzajúcej lekcii mohol mať otec iba
jedného syna. To sa dosiahlo tým,
že otec mal spojenie son_id.
Nech teraz môže mať otec viacerých
synov. V tomto prípade môžeme naďalej
urobiť iba jednu tabuľku, ktorá bude
spojená sama so sebou. Len v poli spojenia
budeme ukladať nie id syna, ale id
otca. V tomto prípade bude môcť niekoľko užívateľov
odkazovať na svojho otca - a tým
bude mať otec viacerých synov:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Získať užívateľa spolu s jeho otcom je možné nasledovným spôsobom:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Nech máme užívateľov. Každý užívateľ má otca a matku. Opíšte štruktúru uloženia.
Napíšte dopyt, ktorý získa užívateľa spolu s jeho otcom a matkou.