Python တွင် ဆက်စပ်တဲ့ ဇယားများမှ ဒေတာရယူခြင်း
အသုံးပြုသူအားလုံးကို သူတို့ရဲ့မြို့တွေနဲ့အတူ ရယူမယ့် query တစ်ခု ရေးကြည့်ရအောင်။ ဒီအတွက်
LEFT
JOIN command လိုအပ်ပါလိမ့်မယ်:
၎င်းရဲ့ syntax က အောက်ပါအတိုင်းဖြစ်ပါတယ်:
SELECT fields FROM table_name
LEFT JOIN related_table_name ON join_condition
WHERE selection_condition
ဒီ command ရဲ့ syntax အစိတ်အပိုင်းတစ်ခုချင်းစီကို ကြည့်ရအောင်။
Fields (ကွက်လပ်များ)
ဇယားများစွာမှ ရွေးထုတ်တာဖြစ်တဲ့အတွက် * ကိုသုံးပြီး fields အားလုံးရွေးတာက အလုပ်မဖြစ်ပါဘူး။
အောက်ကမေးမြန်းချက်က အဓိက ဇယားကနေ fields တွေကိုပဲ ရွေးပေးမှာဖြစ်ပြီး ဆက်စပ်တဲ့ ဇယားကနေ ရွေးမပေးပါဘူး:
SELECT *
ဇယားအားလုံးကနေ ဒေတာတွေရွေးချယ်ဖို့ဆို * ရဲ့ရှေ့မှာ ဇယားနာမည်ကို ဖော်ပြပေးရပါမယ်:
SELECT users.*, cities.*
ဒါမှမဟုတ် လိုအပ်တဲ့ fields တွေကို ဇယားနာမည်နဲ့တကွ ရွေးချယ်ပြောနိုင်ပါတယ်:
SELECT users.name, cities.name
နည်းလမ်းနှစ်ခုစလုံးမှာ ပြဿနာရှိပါတယ်။ ဇယားတွေထဲက fields တွေမှာ နာမည်တူနေရင် Python array ထဲမှာ နာမည်ပဋိပက္ခဖြစ်ပြီး field တစ်ခုပဲအနိုင်ရမှာ၊ ဒုတိယတစ်ခုမရှိတော့ပါဘူး။
ဒီပြဿနာကိုဖြေရှင်းဖို့ ပဋိပက္ခဖြစ်နေတဲ့နာမည်တွေကို as command နဲ့ အမည်ပြောင်းပေးရပါမယ်:
SELECT users.name, cities.name as city_name
Join Condition (ဆက်သွယ်မှု)
ON command ရဲ့နောက်မှာ ဇယားနှစ်ခုကနေ ဆက်သွယ်မှုလုပ်ပေးတဲ့ fields တွေကို ဖော်ပြပေးရပါမယ်။
ကျွန်ုပ်တို့ဖြစ်ရပ်မှာဆို မြို့များဇယားက id field နဲ့ အသုံးပြုသူများဇယားက city_id field ဖြစ်ပါတယ်:
ON cities.id=users.city_id
Query (မေးမြန်းချက်)
အဆုံးသတ်မှာ အသုံးပြုသူတွေကို သူတို့ရဲ့မြို့တွေနဲ့အတူ ရယူမယ့် query က အောက်ပါအတိုင်းဖြစ်ပါလိမ့်မယ်:
SELECT
users.name, cities.name as city_name
FROM
users
LEFT JOIN cities ON cities.id=users.city_id
လက်တွေ့လေ့ကျင့်ခန်းများ
သင့်မှာ ကုန်ပစ္စည်းဇယားနဲ့ ၎င်းတို့ရဲ့အမျိုးအစားဇယားရှိတယ်ဆိုပါစို့။ ကုန်ပစ္စည်းအမည်တွေကို သူတို့ရဲ့အမျိုးအစားတွေနဲ့အတူ ရယူမယ့် query တစ်ခုကို ရေးပြပါ။