Upataji wa Data Kutoka kwa Majedwali Yanayohusiana katika Python
Wacha tufanye ombi ambalo litawapata
watumiaji wote pamoja na miji yao. Kwa hili
itahitaji amri ya LEFT
JOIN:
Sintaksia yake inaonekana kama ifuatavyo:
SELECT sehemu FROM jina_la_jedwali
LEFT JOIN jina_la_jedwali_lililohusishwa ON sharti_la_uhusiano
WHERE sharti_la_uteuzi
Wacha tuchambue sehemu mbalimbali za sintaksia ya amri hii.
Sehemu
Kwa kuwa uteuzi unatoka kwa majedwali kadhaa,
basi uteuzi wa sehemu zote kupitia * hauta
fanya kazi. Ombi linalofuata litachagua
sehemu kutoka kwa jedwali kuu tu, lakini si kutoka kwa
lililohusishwa:
SELECT *
Ili data ichaguliwe kutoka kwa majedwali yote,
inahitajika kabla ya * kubainisha jina
la jedwali la uteuzi:
SELECT users.*, cities.*
Au unaweza kuorodhesha sehemu tunazohitaji zenye ubainisho wa jina la jedwali kabla yao:
SELECT users.name, cities.name
Njia hizi mbili zina tatizo. Jambo ni kwamba, ikiwa sehemu katika majedwali zina majina yanayofanana, basi kwenye safu ya Python litatokea mgogoro wa majina na sehemu moja tu ndio itashinda, na ya pili haitakuwapo.
Kutatua tatizo inahitajika majina yanayogongana
kubadilishwa jina kupitia amri ya
as:
SELECT users.name, cities.name as jina_la_mji
Uhusiano
Baada ya amri ya ON tunapaswa kubainisha
sehemu kutoka kwa majedwali mawili, ambazo huhusishwa
kupitia hizo. Katika kesi yetu hii itakuwa sehemu id
kutoka kwa jedwali la miji na sehemu city_id
kutoka kwa jedwali la watumiaji:
ON cities.id=users.city_id
Ombi
Hatimae ombi, ambalo litawapata watumiaji pamoja na miji yao litaonekana kama ifuatavyo:
SELECT
users.name, cities.name as jina_la_mji
FROM
users
LEFT JOIN cities ON cities.id=users.city_id
Kazi za Vitendo
Wacha tuwe na jedwali la bidhaa na jedwali la aina zake. Andika ombi, ambalo litapata majina ya bidhaa pamoja na aina zake.