⊗ppPmDOFR 385 of 447 menu

Marrëdhëniet e të dhënave të lidhura në PHP

Supozoni 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ë 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 i njëjti person mund të jetë njëkohësisht si baballar ashtu edhe djalë - dhe do të duhej ta ruajmë atë në të dy tabelat, gjë që është e papërshtatshme, zë më shumë hapësirë dhe lehtësisht çon në gabime.

Një variant më i mirë është të lidhim tabelën vete me vete: le të krijojmë një tabelë users, në të do të ruajmë të gjithë përdoruesit dhe secilit do t'i krijojmë 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ë nxjerrë përdoruesin së bashku me djalën e tij.

Për fillim, le të nxjerrim thjesht përdoruesit:

SELECT * FROM users

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

LEFT JOIN users as sons

Tani mund të specifikojmë lidhjen e tabelës kryesore 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 e mëposhtme:

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

Supozoni 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 e kështu me radhë. Përshkruani strukturën e ruajtjes.

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

Shkruani një kërkesë që do të nxjerrë kategorinë së bashku me prindin dhe gjyshin e saj.

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

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