PHP တွင် ဆက်စပ်ဇယားများမှ အချက်အလက်များ ရယူခြင်း

အသုံးပြုသူအားလုံးကို ၎င်းတို့၏မြို့များနှင့်အတူ ထုတ်ယူပေးမည့် query တစ်ခု ရေးကြည့်ပါစို့။ ထိုသို့ပြုလုပ်ရန် LEFT JOIN command လိုအပ်ပါမည်။

၎င်း၏ syntax သည် အောက်ပါအတိုင်းဖြစ်သည်။

sqlSELECT fields FROM table_name
  LEFT JOIN related_table_name ON join_condition 
WHERE selection_condition

ဤ command ၏ syntax အစိတ်အပိုင်းများကို သီးသန့်ခွဲ၍ ကြည့်ကြပါစို့။

Fields

ဇယားများစွာမှ ရွေးချယ်မှုပြုလုပ်သောကြောင့် * ဖြင့် field အားလုံးကို ရွေးချယ်ခြင်းသည် အလုပ်မလုပ်ပါ။ အောက်ပါ query သည် အဓိကဇယားမှ field များကိုသာ ရွေးချယ်မည်ဖြစ်ပြီး ဆက်စပ်ဇယားမှ မဟုတ်ပါ။

sqlSELECT *

ဇယားအားလုံးမှ အချက်အလက်များ ရွေးချယ်ရန် * မတိုင်မီ ဇယားအမည်ကို ရွေးချယ်ရန်အတွက် သတ်မှတ်ပေးရပါမည်။

sqlSELECT users.*, cities.*

သို့မဟုတ် ကျွန်ုပ်တို့လိုအပ်သော field များကို ၎င်းတို့ရှေ့တွင် ဇယားအမည်ဖြင့် သတ်မှတ်ကာ စာရင်းပြုစုနိုင်သည်။

sqlSELECT users.name, cities.name

ဤနည်းလမ်းနှစ်ခုတွင် ပြဿနာရှိပါသည်။ ဇယားများရှိ field များတွင် အမည်တူနေပါက PHP array ထဲတွင် အမည်ပဋိပက္ခဖြစ်ပြီး field တစ်ခုသာ အောင်မြင်ကာ ဒုတိယ field ပါဝင်မည်မဟုတ်ပါ။

ဤပြဿနာကိုဖြေရှင်းရန် ပဋိပက္ခဖြစ်နေသောအမည်များကို as command ဖြင့် ပြန်လည်အမည်ပေးရပါမည်။

sqlSELECT users.name, cities.name as city_name

Join Condition

ON command ပြီးနောက် ဆက်သွယ်မှုပြုလုပ်သော ဇယားနှစ်ခုမှ field များကို သတ်မှတ်ပေးရပါမည်။ ကျွန်ုပ်တို့၏ကိစ္စတွင် ၎င်းသည် cities ဇယားမှ id field နှင့် users ဇယားမှ city_id field ဖြစ်သည်။

sqlON cities.id=users.city_id

Query

အဆုံး၌ အသုံးပြုသူများကို ၎င်းတို့၏မြို့များနှင့်အတူ ထုတ်ယူပေးမည့် query သည် အောက်ပါအတိုင်းဖြစ်လိမ့်မည်။

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

လက်တွေ့လေ့ကျင့်ခန်းများ

Задание 1

သင့်တွင် ကုန်ပစ္စည်းများပါသော ဇယားနှင့် ၎င်းတို့၏အမျိုးအစားများပါသော ဇယားရှိသည်ဆိုပါစို့။ ကုန်ပစ္စည်းအမည်များကို ၎င်းတို့၏အမျိုးအစားများနှင့်အတူ ထုတ်ယူပေးမည့် query တစ်ခုကို ရေးပါ။