⊗ppPmDOFR 385 of 447 menu

PHP-də Məlumatların Qohumluq Əlaqələri

Tutaq ki, qarşımızda ataları və oğulları saxlamaq vəzifəsi durur. Tutaq ki, hər bir atanın yalnız bir oğlu ola bilər, oğul da öz növbəsində bir oğula sahib ola bilər.

Məlumatları necə saxlayacağımızı düşünməliyik. Ağlına gələ biləcək ilk fikir - iki cədvəl yaratmaqdır: atalar üçün parents və oğullar üçün sons. Sonra bu cədvəlləri bir növ sahə ilə əlaqələndirmək: son_id və ya parent_id.

Lakin, bu fikir çox yaxşı deyil - axı eyni şəxs eyni zamanda həm ata, həm də oğul ola bilər - və onu hər iki cədvəldə saxlamaq məcburiyyətində qalacağıq, bu da əlverişsizdir, daha çox yer tutur və asanlıqla səhvlərə səbəb ola bilər.

Daha yaxşı variant - cədvəli özü ilə əlaqələndirməkdir: gəlin users cədvəli yaradaq, orada bütün istifadəçiləri saxlayacağıq və hər birinə son_id sahəsi təyin edəcəyik, bu sahədə eyni cədvəldən olan oğulun id-si saxlanılacaq:

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

Sorğular

İndi gəlin istifadəçini onun oğlu ilə birlikdə çıxaracaq sorğu yazaq.

Əvvəlcə gəlin sadəcə istifadəçiləri çıxaraq:

SELECT * FROM users

İndi istifadəçilərə onların oğullarını birləşdirək (join edək). Biz cədvəli özü ilə birləşdirəcəyik, ona görə də onu yenidən adlandırmağı yerinə yetirməliyik:

LEFT JOIN users as sons

İndi əsas cədvəl və yenidən adlandırılmış cədvəl arasında əlaqəni göstərə bilərik:

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

İndi sahələri göstərək:

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

Gəlin hamısını birləşdirək və aşağıdakı sorğunu əldə edək:

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

Praktiki Tapşırıqlar

Tutaq ki, kateqoriyalarımız var. Hər bir kateqoriya ana kateqoriyaya aid ola bilər, o da öz növbəsində öz ana kateqoriyasına aid ola bilər və s. Saxlama quruluşunu təsvir edin.

Kateqoriyanı onun ana kateqoriyası ilə birlikdə çıxaracaq sorğu yazın.

Kateqoriyanı onun ana kateqoriyası və nənə kateqoriyası ilə birlikdə çıxaracaq sorğu yazın.

Kateqoriyanı onun ana kateqoriyası, nənə kateqoriyası və nənənin ana kateqoriyası ilə birlikdə çıxaracaq sorğu yazın.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et