Kupata Data Kutoka kwa Majedwali Yanayohusiana katika PHP

Wacha tufanye ombi ambalo litawapata watumiaji wote pamoja na miji yao. Kwa hili tutahitaji amri ya LEFT JOIN:

Sintaksia yake inaonekana kama ifuatavyo:

sqlSELECT sehemu FROM jina_la_jedwali
  LEFT JOIN jina_la_jedwali_lililounganishwa ON sharti_la_kuunganisha 
WHERE sharti_la_uteuzi

Wacha tuchambue sehemu mbalimbali za sintaksia ya amri hii.

Sehemu

Kwa kuwa uteuzi unatoka kwa majedwali kadhaa, uteuzi wa sehemu zote kwa * hautafanya kazi. Ombi linalofuata litachagua sehemu tu kutoka kwa jedwali kuu, lakini si kutoka kwa lile lililounganishwa:

sqlSELECT *

Ili data ichaguliwe kutoka kwa majedwali yote, inahitajika kabla ya * kubainisha jina la jedwali la uteuzi:

sql SELECT users.*, cities.*

Au unaweza kuorodhesha sehemu tunazohitaji kwa kubainisha jina la jedwali kabla yazo:

sqlSELECT users.name, cities.name

Njia hizi mbili zina tatizo. Jambo ni kwamba, ikiwa sehemu katika majedwali zina majina yale yale, basi katika safu ya PHP kutakuja kwa migongano ya majina na sehemu moja tu ndiyo itashinda, na ya pili haitakuwapo.

Kutatua tatizo inahitajika majina yanayogongana kubadilishwa jina kwa kutumia amri ya as:

sqlSELECT users.name, cities.name as jina_la_mji

Uhusiano

Baada ya amri ya ON lazima tubainishe sehemu kutoka kwa majedwali mawili, ambapo huundwa uhusiano. Katika kesi yetu hii itakuwa sehemu id kutoka kwa jedwali la miji na sehemu city_id kutoka kwa jedwali la watumiaji:

sqlON cities.id=users.city_id

Ombi

Hatimae ombi, ambalo litawapata watumiaji pamoja na miji yao litaonekana kama ifuatavyo:

sqlSELECT 
  users.name, cities.name as jina_la_mji
FROM 
  users
LEFT JOIN cities ON cities.id=users.city_id

Kazi Za Vitendo

Задание 1

Wacha tuwe na jedwali la bidhaa na jedwali la aina zake. Andika ombi ambalo litapata majina ya bidhaa pamoja na aina zake.