⊗ppPmDOFR 385 of 447 menu

Data Verwantskappe in PHP

Gestel ons het die taak om vaders en seuns te stoor. Gestel elke vader kan slegs een seun hê, en die seun op sy beurt kan ook een seun hê.

Ons moet uitvind hoe ons die data sal stoor. Die eerste idee wat by jou opkom is om twee tabelle te maak: parents vir vaders en sons vir seuns. Dan verbind hierdie tabelle met 'n veld: son_id of parent_id.

Hierdie idee is eger nie baie goed nie - want dieselfde persoon kan gelyktydig beide 'n vader en 'n seun wees - en ons sal hom in albei tabelle moet stoor, en dit is ongemaklik, neem meer plek in en lei maklik tot foute.

'N Beter opsie is om die tabel met homself te verbind: laat ons 'n tabel users maak, daarin sal ons alle gebruikers stoor en vir elkeen 'n veld son_id maak, waarin die id van die seun uit dieselfde tabel gestoor sal word:

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

Navrae

Kom ons skryf nou 'n navraag wat die gebruiker saam met sy seun sal uithaal.

Laat ons eers die gebruikers uithaal:

SELECT * FROM users

Laat ons nou hul seuns by die gebruikers voeg. Ons sal die tabel met homself joine, so ons moet dit hernoem:

LEFT JOIN users as sons

Nou kan ons die verbinding tussen die hoof tabel en die hernoemde tabel aandui:

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

Laat ons nou die velde aandui:

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

Laat ons alles bymekaar sit en die volgende navraag kry:

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

Praktiese Take

Gestel ons het kategorieë. Elke kategorie kan aan 'n ouer kategorie behoort, en daardie een op sy beurt aan sy ouer en so aan. Beskryf die stoor struktuur.

Skryf 'n navraag wat die kategorie saam met sy ouer kategorie uithaal.

Skryf 'n navraag wat die kategorie saam met sy ouer en grootouer uithaal.

Skryf 'n navraag wat die kategorie saam met sy ouer, grootouer en oorgrootouer uithaal.

Afrikaans
Azə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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp