⊗pyPmDOGD 123 of 129 menu

Python-da Əlaqəli Cədvəllərdən Məlumatların Alınması

Gəlin istifadəçiləri onların şəhərləri ilə birlikdə çıxaran bir sorğu edək. Bunun üçün LEFT JOIN əmri tələb olunacaq:

Onun sintaksisi aşağıdakı kimi görünür:

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çilməsi 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 yox:

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. Məsələ burasındadır ki, əgər cədvəllərdəki sahələr eyni adlara malikdirsə, onda Python massivində adlar toqquşması baş verəcək və yalnız bir sahə qalacaq, ikincisi olmayacaq.

Problemi həll etmək üçün, toqquşan adları as əmri vasitəsilə dəyişdirmək lazımdır:

SELECT users.name, cities.name as city_name

Əlaqə

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

ON cities.id=users.city_id

Sorğu

Nəticədə, istifadəçiləri onların şəhərləri ilə birlikdə çıxaran sorğu aşağıdakı kimi görünəcək:

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

Praktik Tapşırıqlar

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