⊗ppPmDOGD 382 of 447 menu

Əlaqəli cədvəllərdən məlumatların alınması PHP-də

Gəlin istifadəçiləri şəhərləri ilə birlikdə çıxaran sorğu yazaq. Bunun üçün bizə LEFT JOIN əmri lazımdır:

Onun sintaksisi aşağıdakı kimi olur:

SELECT sahələr FROM cədvəl_adı LEFT JOIN əlaqəli_cədvəl_adı ON əlaqə_şərti WHERE seçim_şərti

Gəlin bu əmrın sintaksisinin ayrı-ayrı hissələrini izah edək.

Sahələr

Bir neçə cədvəldən seçim edildiyi üçün, * vasitəsilə bütün sahələrin seçimi işləməyəcək. Aşağıdakı sorğu yalnız əsas cədvəldən sahələri seçəcək, əlaqəli cədvəldən deyil:

SELECT *

Bütün cədvəllərdən məlumatların seçilməsi üçün, * qarşısında seçim üçün cədvəl adını göstərmək lazımdır:

SELECT users.*, cities.*

Ya da bizə lazım olan sahələri onların qarşısında cədvəl adını göstərməklə sadalamaq olar:

SELECT users.name, cities.name

Bu iki üsulun problemi var. O ondan ibarətdir ki, əgər cədvəllərdəki sahələr eyni adlara malikdirsə, onda PHP massivində adlar toqquşması baş verəcək və yalnız bir sahə qalacaq, ikincisi olmayacaq.

Problemin həlli üçün toqquşan adları as əmri ilə dəyişdirmək lazımdır:

SELECT users.name, cities.name as city_name

Əlaqə

ON əmrından sonra biz əlaqənin qurulduğu iki cədvəldən olan sahələri göstərməliyik. Bizim vəziyyətimizdə bu, şəhərlər cədvəlindən id sahəsi və istifadəçilər cədvəlindən city_id sahəsi olacaq:

ON cities.id=users.city_id

Sorğu

Nəticədə, istifadəçiləri şəhərləri ilə birlikdə çıxaran sorğu aşağıdakı kimi olacaq:

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

Praktiki tapşırıqlar

Tutaq ki, sizin məhsullar cədvəli və onların kateqoriyaları cədvəli var. Məhsulların adlarını kateqoriyaları ilə birlikdə çıxaran 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