Več potomcev v sorodstvenih povezavah v Pythonu
V prejšnji lekciji je imel oče lahko samo
enega sina. To je bilo doseženo z dejstvom,
da je imel oče povezavo son_id.
Naj ima zdaj oče lahko več
sinov. V tem primeru lahko še vedno
naredimo samo eno tabelo, ki bo
povezana sama s seboj. Samo v polju povezave
bomo shranili ne id sina, ampak id
očeta. V tem primeru se bo več uporabnikov lahko
sklicevalo na svojega očeta - in s tem
bo imel oče več sinov:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Uporabnika skupaj z njegovim očetom lahko dobimo na naslednji način:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Recimo, da imamo uporabnike. Vsak uporabnik ima očeta in mater. Opišite strukturo shranjevanja.
Napišite poizvedbo, ki bo pridobila uporabnika skupaj z njegovim očetom in materjo.