Pythonда бир нечта фарзандли ўхшашлик алоқалари
Олдинги дарсда ота фақат битта
farzanдга эга бўлиши мумкин эди. Бу
отанинг son_id алоқаси орқали амалга оширилган эди.
Энди ота бир нечта фарзандга эга бўлиши мумкин деб фараз қилайлик. Бу ҳолатда биз
ҳали хам ўзига ўзи боғланган битта жадвал яратишимиз мумкин. Фақат алоқа майдонида
биз id фарзандни эмас, балки id
отани сақлаймиз. Бу ҳолатда бир нечта фойдаланувчи ўз отасига мурожаат қилади - ва шу тариқа
ота бир нечта фарзандга эга бўлади:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Фойдаланувчини унинг отаси билан бирга quyidagicha олиш мумкин:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Фарз қилайлик, бизда фойдаланувчилар мавжуд. Ҳар бир фойдаланувчининг отаси ва онаси бор. Сақлаш тузилмасини ёзиб чиқинг.
Фойдаланувчини унинг отаси ва онаси билан бирга оладиган сўров ёзинг.