⊗pyPmDOFR 126 of 129 menu

Marrëdhëniet e të Dhënave të Afërta në Python

Le të supozojmë se kemi përballë detyrën e ruajtjes së baballarëve dhe djemve. Le të supozojmë se çdo baballar mund të ketë vetëm një djalë, dhe djali nga ana e tij gjithashtu mund të ketë një djalë.

Duhet të gjejmë se si do t'i ruajmë të dhënat. Ideja e parë që mund t'ju vijë në mendje është të bëhen dy tabela: parents për baballarët dhe sons për djemtë. Pastaj t'i lidhim këto tabela me ndonjë fushë: son_id ose parent_id.

Megjithatë, kjo nuk është një ide shumë e mirë - në fund të fundit e njëjti person mund të jetë njëkohësisht si baballar ashtu edhe djalë - dhe do të duhej ta ruajmë atë në të dyja tabelat, dhe kjo është e papërshtatshme, merr më shumë hapësirë dhe lehtësisht çon në gabime.

Një variant më i mirë është të lidhim tabelën vete me vetveten: le të krijojmë një tabelë users, në të do të ruajmë të gjithë përdoruesit dhe secilit t'i bëjmë një fushë son_id, në të cilën do të ruhet id i djalit nga e njëjta tabelë:

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

Kërkesat

Tani le të shkruajmë një kërkesë që do të marrë përdoruesin së bashku me djalën e tij.

Për fillim, le të marrim vetëm përdoruesit:

SELECT * FROM users

Tani le t'i bashkojmë (join) përdoruesve djemtë e tyre. Ne do ta bashkojmë tabelën vetë me vetveten, prandaj duhet të kryejmë riemërtimin e saj:

LEFT JOIN users as sons

Tani mund të specifikojmë lidhjen e tabelës bazë dhe asaj të riemërtuar:

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

Tani le të specifikojmë fushat:

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

Le të mbledhim gjithçka së bashku dhe do të marrim kërkesën në vijim:

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

Detyra praktike

Le të supozojmë se kemi kategori. Çdo kategori mund t'i përkasë një kategorie prindërore, e cila nga ana e saj mund t'i përkasë kategorisë së saj prindërore dhe kështu me radhë. Përshkruani strukturën e ruajtjes.

Shkruani një kërkesë që do të marrë kategorinë së bashku me kategorinë e saj prindërore.

Shkruani një kërkesë që do të marrë kategorinë së bashku me prindin e saj dhe prindin e parë (gjyshin).

Shkruani një kërkesë që do të marrë kategorinë së bashku me prindin e saj, prindin e parë (gjyshin) dhe prindin e parë të parë (stërgjyshin).

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo