Meerdere nakomelingen in familierelaties in Python
In de vorige les kon een vader alleen maar
één zoon hebben. Dit werd bereikt doordat
de vader een link son_id had.
Stel dat een vader nu meerdere zonen kan
hebben. In dit geval kunnen we nog steeds
slechts één tabel maken, die met zichzelf
verbonden is. Alleen zullen we in het linkveld
niet de id van de zoon opslaan, maar de id
van de vader. Op deze manier kunnen meerdere gebruikers
verwijzen naar hun vader - en zo
zal de vader meerdere zonen hebben:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Een gebruiker samen met zijn vader verkrijgen kan op de volgende manier:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Stel we hebben gebruikers. Elke gebruiker heeft een vader en een moeder. Beschrijf de opslagstructuur.
Schrijf een query die een gebruiker ophaalt samen met zijn vader en moeder.