Více potomků v rodinných vztazích v Pythonu
V předchozí lekci mohl otec mít pouze
jednoho syna. Toho bylo dosaženo tím,
že otec měl vazbu son_id.
Nyní předpokládejme, že otec může mít několik
synů. V tomto případě stále můžeme
vytvořit pouze jednu tabulku, která bude
propojena sama se sebou. Pouze v poli vazby
budeme ukládat ne id syna, ale id
otce. Tímto způsobem se několik uživatelů bude moci
odkazovat na svého otce - a tím pádem
bude otec mít několik synů:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Získat uživatele spolu s jeho otcem lze následujícím způsobem:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Předpokládejme, že máme uživatele. Každý uživatel má otce a matku. Popište strukturu uložení.
Napište dotaz, který načte uživatele spolu s jeho otcem a matkou.