⊗pyPmDOFR 126 of 129 menu

Python'догу маалыматтардын туугандык байланыштары

Алдыда бизде аталарды жана уулдарды сактоо милдети турат деп коёлу. Ар бир атанын бир гана уулу болушу мүмкүн, ал эми уул да өзүнүн бир уулуна ээ болушу мүмкүн.

Маалыматтарды кантип сактайбыз, аны ойлонуп чыгышыбыз керек. Биринчи ойго келген идея - эки таблица жасоо: parents аталар үчүн жана sons уулдар үчүн. Андан кийин бул таблицаларды бир кандайдыр талаа менен байланыштыруу: son_id же parent_id.

Бирок, бул идея абдан жакшы эмес - анткени бир эле адам бир учурда ата да, уул да болушу мүмкүн - жана аны эки таблицада сактоо керек болот, бул ыңгайсыз, орду көп ээлейт жана каталарга алып келүүгө оңой.

Жакшыраак вариант - таблицаны өзүнө эле байланыштыруу: users таблицасын жасайбыз, анда бардык колдонуучуларды сактайбыз жана ар бирине son_id талаасын беребиз, анда ушул эле таблицадагы уулдун id сакталат:

users
id name son_id
1 user1 2
2 user2 3
3 user3 null

Сұраулар

Эми колдонуучуну анын уулу менен бирге алып чыккан сұрау жазалы.

Адегенде жөн гана колдонуучуларды алалы:

SELECT * FROM users

Эми колдонуучуларга алардын уулдарын кошуп жөндөйбүз. Биз таблицаны өзүнө эле жөндөйбүз, ошондуктан биз анын аталышын өзгөртүүнү аткарышыбыз керек:

LEFT JOIN users as sons

Эми негизги таблица менен аталышы өзгөртүлгөн таблицанын ортосундагы байланышты көрсөтө алабыз:

LEFT JOIN users as sons ON sons.id=users.son_id

Эми талааларды көрсөтөлү:

SELECT users.name as user_name, sons.name as son_name

Баарын бириктирип, төмөнкү сұрауну алабыз:

SELECT users.name as user_name, sons.name as son_name FROM users LEFT JOIN users as sons ON sons.id=users.son_id

Практикалык тапшырмалар

Анда бизде категориялар бар деп коёлу. Ар бир категория ата-эне категориясына таандык болушу мүмкүн, ал өз кезегинде өзүнүн ата-энесине жана ушундай улантылат. Сактоо түзүмүн жазып бер.

Категорияны анын ата-эне категориясы менен бирге алып чыккан сұрау жазыңыз.

Категорияны анын ата-энеси менен жана ата-энесинин ата-энеси менен бирге алып чыккан сұрау жазыңыз.

Категорияны анын ата-энеси, ата-энесинин ата-энеси жана ата-энесинин ата-энесинин ата-энеси менен бирге алып чыккан сұрау жазыңыз.

Кыргызча
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어LietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу