ကွန်ပျူတာများပရိုဂရမ်းမင်း

အော်ပရေတာ SQL Inner JOIN: syntax ၏ဥပမာများနှင့်အင်္ဂါရပ်များ

မည်သည့်ဒေတာဘေ့စဖွံ့ဖြိုးဆဲဖန်တီးမှုနှင့်အဆာအမျိုးမျိုးသောအချက်အလက်တွေနဲ့စားပွဲ၏, ဒါပေမယ့်လည်းဒေတာနှင့်အတူနောက်ထပ်အလုပ်မသာပါဝင်သည်။ မှန်မှန်ကန်ကန်စားပွဲနှင့်အစီရင်ခံထံမှအချက်အလက်များ၏ရွေးချယ်မှုမှာတာဝန်များကိုအမျိုးမျိုးလုပ်ဆောင်စေရန်, စံကို Select လုပ်ပါဒီဇိုင်းကိုအသုံးပြုပါ။

စားပွဲကနေဒေတာတွေကိုဆွဲယူ

ကျနော်တို့အချက်အလက်များ၏ရွေးချယ်မှုတစ်ခုသို့မဟုတ်အစီရင်ခံစာ၏ဆောက်လုပ်ရေး၏ပြဿနာကိုထည့်သွင်းစဉ်းစားလျှင်သင်စစ်ဆင်ရေး၏ရှုပ်ထွေးမှုအဆင့်ကိုဆုံးဖြတ်ရန်နိုင်ပါတယ်။ ဖွဲ့စည်းခဲ့သည့် (အသံအတိုးအကျယ်အရ) အလေးအနက် databases ကိုအတူဆက်ဆံတဲ့အခါမှာစည်းကမ်းအတိုင်း, ဥပမာ, အွန်လိုင်းစတိုးဆိုင်များသို့မဟုတ်ကြီးမားသောကုမ္ပဏီများသည်အတွက်, ဒေတာရွေးချယ်မှုကိုတစ်ခုတည်းစားပွဲပေါ်မှာဖို့ကန့်သတ်သည်မဟုတ်။ စည်းကမ်းအတိုင်း, နမူနာ၎င်း၏လုပ်ငန်းတာဝန်အပေါ် မူတည်. အဆိုပါပရိုဂရမ်မာကချိတ်ဆက်ထားသောကျောက်ပြားကိုသာ၏မျှမျှတတကြီးမားသောအရေအတွက်, ဒါပေမယ့်လည်းအသိုက်မေးမြန်းချက် / sub-မေးမြန်းချက်မှဖြစ်နိုင်သည်။ တဦးတည်း table ၏နမူနာများအတွက်အရိုးရှင်းဆုံးဖွဲ့စည်းပုံကိုသုံးနိုင်သည်:

ပုဂ္ဂိုလ်ထံမှ * ကို Select လုပ်ပါ

ပုဂ္ဂိုလ်အဘယ်မှာရှိ - စားပွဲ၏နာမတော်ကိုသင်တို့အား data တွေကိုပြန်လည်ရယူခြင်းစေလိုသည့်အနေဖြင့်။

သို့သော်သင်မျိုးစုံစားပွဲကနေဒေတာတွေကို select လုပ်ဖို့လိုအပ်ပါလိမ့်မယ်လျှင်, စံဒီဇိုင်းများ၏တဦးတည်းမျိုးစုံစားပွဲ join ဖို့အသုံးပြုနိုင်ပါသည်။

အပိုဆောင်းစားပွဲနည်းလမ်းများဆက်သွယ်ထားသော

ကျွန်တော်မူလတန်းအဆင့်မှာထိုကဲ့သို့သောအဆောက်အဦများ၏အသုံးပြုမှုကိုထည့်သွင်းစဉ်းစားလျှင်, ငါတို့သည်အမည်ရ, နမူနာဇယားများအတွက်လိုအပ်သောအရေအတွက်ကိုချိတ်ဆက်ဖို့အောက်ပါယန္တရားများခွဲခြားနိုင်သည်

  1. အော်ပရေတာအတွင်းပိုင်းကို Join ။
  2. လက်ဝဲဘက်ကဒုတိယမှတ်တမ်းတင်နည်းလမ်း, လက်ဝဲအပြင်ကို Join ဖြစ်ပါသည်, Join သို့မဟုတ်။
  3. လက်ဝါးကပ်တိုင်ကို Join ။
  4. အပြည့်အဝကို Join ။

လက်တွေ့တွင်စားပွဲ join ဖို့အော်ပရေတာများအသုံးပြုခြင်း, သင် SQL ကြေညာချက်၏အသုံးပြုမှုကိုထည့်သွင်းစဉ်းစားခြင်းဖြင့်သင်ယူနိုင် - အတွင်းပိုင်းကို Join ။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းယင်း၏အသုံးပြုမှုဥပမာတစ်ခုဖြစ်လိမ့်မယ်:

ပုဂ္ဂိုလ်ထံမှ * ကို Select လုပ်ပါ

အတွင်းစိတ် Su_Person = Pe_ID အပေါ် Subdivision join

ဘာသာစကား SQL နှင့်အတွင်းပိုင်းအော်ပရေတာကို Join Join သည်အလွန်စည်းကမ်းအဖြစ်, သိသိသာသာတိကျတဲ့, ရှုပ်ထွေးစုံစမ်းမှုအဆောက်အဦများ၏အကောင်အထည်ဖော်မှုအရှိန်အဟုန်မြှင့်နိုင်, ဒေတာဘေ့စအုပ်ချုပ်ရေးမှူးများ၏လုပျငနျးနိုင်အောင်စီစဉ်ပေးထားတယ်နှင့်အရာ, နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောကျောက်ပြားကိုပေါင်းစပ်ပြီးအဘို့မသာအသုံးပွုနိုငျ, ဒါပေမယ့်လည်းအခြား sub-မေးမြန်းချက်ချိတ်ဆက်ဖို့။

ကြိုးတန်းစားပွဲအညီ data တွေကိုပေါင်းစပ်ပြီး

ကျနော်တို့လိုင်းအားဖြင့်တစ်ခုတည်းစားပွဲပေါ်မှာလိုင်းသို့စုဝေးစေ Sub-မေးမြန်းချက်များနှင့်အချက်အလက်များ၏ကြီးမားသောအရေအတွက်ကများဆက်သွယ်မှုကိုထည့်သွင်းစဉ်းစားလျှင်သင်ကိုလည်းအော်ပရေတာကိုပြည်ထောင်စုနှင့်ပြည်ထောင်စုအားလုံးကိုသုံးနိုင်သည်။

ဤအအဆောက်အဦများ၏အသုံးပြုမှုကိုရည်ရွယ်ချက်များနှင့်သူသည်အဆုံး၌အောင်မြင်ရန်လိုလားသောရလာဒ်များကိုသတ်မှတ်နိုင်ရန်ပြုစုသူအပေါ်မူတည်ပါလိမ့်မယ်။

ဖော်ပြချက်အတွင်းအော်ပရေတာကို Join

အများဆုံးကိစ္စများတွင်အတွင်းအသုံးပြုတဲ့ SQL ဘာသာစကားမှာမျိုးစုံစားပွဲပေါင်းစပ်ဖို့အော်ပရေတာကို Join ။ အတွင်းပိုင်း SQL အတွက် Join ဖော်ပြချက်ရုံ databases ကိုနားလည်ရန်အစသူပျမ်းမျှပရိုဂရမ်မာကိုနားလည်သဘောပေါက်ရန်အတော်လေးလွယ်ကူသည်။ ကြှနျုပျတို့သညျဤဖွဲ့စည်းပုံ၏အလုပ်၏ယန္တရား၏ဖော်ပြချက်ထည့်သွင်းစဉ်းစားလျှင်, ငါတို့သည်အောက်ပါပုံကိုရရှိမည်ဖြစ်သည်။ တစ်ဖွဲ့လုံးကယုတ္တိဗေဒအော်ပရေတာကူးနှင့်နမူနာများဖြစ်နိုင်ခြေအဆိုပါမေးမြန်းမှုတွင်ထည့်သွင်းကျောက်ပြားတစ်ခုချင်းစီအတွက်ကြောင်းကိုသာဒေတာပေါ်တွင်တည်ဆောက်ထားသည်။

: ငါတို့သည်ဂရပ်ဖစ်အနက်ကို၏စည်းကမ်းချက်များ၌အလုပ်၏ဤမျိုးကိုကြည့်လျှင်, ငါတို့သည် SQL အတွင်းအော်ပရေတာဖွဲ့စည်းပုံမှာအောက်ပါအစီအစဉ်အားဖြင့်ပြသနိုင်သည့်၏ဥပမာတစ်ခုကို Join ရယူ

ဥပမာအားဖြင့်ကျနော်တို့ကိန်းဂဏန်းအတွက်သိထားပြကျောက်ပြားနှစ်ပြား, ရှိသည်။ သူတို့က, အလှည့်အတွက် posts များတဲ့နေရာမှာမတူညီတဲ့အရေအတွက်အားရှိသည်။ ကျောက်ပြားတစ်ခုချင်းစီအတွက်ဆက်စပ်ဖြစ်ကြောင်းလယ်ကွင်းရှိသည်။ ကျနော်တို့ကပုံဆွဲ၏အခြေခံပေါ်တွင်အော်ပရေတာ၏လုပျငနျးကိုရှင်းပြဖို့ကြိုးစားလျှင်, ပြန်လာသောရလဒ်အခန်းများအပြန်အလှန်လယ်ကွင်းတိုက်ဆိုင်နေကြသည်ရှိရာကျောက်ပြားနှစ်ပြားမှမှတ်တမ်းများအစုတခုဖြစ်လိမ့်မည်။ ရိုးရှင်းစွာအထား, ထိုစုံစမ်းမှုအဘယ်သူ၏ဒေတာနံပါတ်တစ် table ထဲမှာဖြစ်ပါသည်သူတို့သာမှတ်တမ်းများ (စားပွဲနံပါတ်တစ်နှစ်ခုအတွက်), ပြန်လည်ရောက်ရှိ။

အဆိုပါအတွင်းပိုင်း၏ syntax ကို Join

ယခင်ကဖော်ပြခဲ့တဲ့အတိုင်း, အော်ပရေတာအတွင်းထူးထူးခြားခြားရိုးရှင်းသော, အမည်ရ၎င်း၏ syntax ကို Join ။ တစ်ခုတည်းနမူနာအတွင်းစားပွဲအကြားဆက်ဆံရေး၏အဖွဲ့အစည်းအတွက်အမည်ရ, ဆော့ဖ်ဝဲ SQL-code ကိုတစ်တစ်ခုတည်းအညီသတ်မှတ်ထားသောသောအော်ပရေတာများ၏ဆောက်လုပ်ရေး၏အောက်ပါသိထားပုံကိုမှတ်မိခြင်းနှင့်သုံးစွဲဖို့လုံလောက်ပါလိမ့်မယ်:

  • အတွင်းစိတ် [ရသောချိတ်ဆက်ဖို့စားပွဲ၏အဓိကအကွက်တွင်] = [စားပွဲပေါ်မှာ၏ pluggable key ကိုလယ်ပြင်] အပေါ် [ဇယားအမည်] Join ။

ဒီကြေညာချက်ထဲမှာဆက်သွယ်ရေးများအတွက်အဓိကအားဖြင့်စားပွဲသော့ကိုအသုံးပြုသည်။ စည်းကမ်းနှင့်အမျှန်ထမ်းအကြောင်းသတင်းအချက်အလက်သိမ်းဆည်းထားကြောင်း tables တွေရဲ့အုပ်စုတွင်ယခင်ကပုဂ္ဂိုလ် Subdivision ဖော်ပြထားနှင့်အနည်းဆုံးတဦးတည်းဆင်တူစံချိန်ရှိသည်။ ဒါကြောင့်တစ်ဦးပိုမိုနီးကပ်စွာ SQL အတွင်းပိုင်းကို Join အော်ပရေတာ, အနည်းငယ်အစောပိုင်းကပြသခဲ့ပြီးသောဥပမာတစ်ခုကိုကြည့်ယူပါ။

အသံနမူနာစားပွဲပေါ်မှာမှဥပမာဖော်ပြချက်များနှင့်ဆက်သွယ်မှု

ကျနော်တို့ကုမ္ပဏီအတွက်အလုပ်လုပ်ကိုင်အပေါငျးတို့သန်ထမ်းအကြောင်းသတင်းအချက်အလက်သိုလှောင်ထားတဲ့တစ်ဦးကို Person စားပွဲပေါ်မှာရှိသည်။ Pe_ID - ရုံစားပွဲ၏မာစတာကီးကိုလယ်ကြောင်းသတိပြုပါ။ ရုံကပေါ်နှင့်တစ်ဦးအစုအဝေးကိုသွားပါလိမ့်မယ်။

ဒုတိယစားပွဲပေါ်မှာ Subdivision န်ထမ်းအလုပ်လုပ်ကိုင်ရာအတွက်ရုံးများနှင့် ပတ်သက်. သတင်းအချက်အလက်သိမ်းဆည်းထားမည်ဖြစ်သည်။ သူမသည်အလှည့်၌, Su_Person လယ်ကွင်းပုဂ္ဂိုလ်စားပွဲပေါ်မှာမှတဆင့်ချိတ်ဆက်နေသည်။ ဒါကဘာကိုဆိုလိုသနညျး ဒေတာ schema အပေါ်အခြေခံပြီးစားပွဲအသီးအသီးစံချိန်အဘို့စားပွဲကိုယူနစ်မှာ "န်ထမ်း" သူတို့အလုပ်လုပ်ရသောဌာနအကြောင်းသတင်းအချက်အလက်ပါလိမ့်မည်ဟုဆိုသည်နိုင်ပါသည်။ ဒါဟာဆက်သွယ်ရေးအဘို့ဖြစ်၏နှင့်အတွင်းပိုင်းကို Join အော်ပရေတာအလုပ်လုပ်ပါလိမ့်မယ်။

အော်ပရေတာ SQL အတွင်းပိုင်း (တစ်ဦးသို့မဟုတ်နှစ်ပြားကို၎င်း၏အသုံးပြုမှုဥပမာ) Join ထည့်သွင်းစဉ်းစားတစ်ဦးထက်ပိုသောထိုးထွင်းသိမြင်အသုံးပြုမှုသည်။ ကျနော်တို့အတူတူစားပွဲ၏ဥပမာကိုစဉ်းစားလျှင်, အားလုံးအတော်လေးရိုးရှင်းတဲ့ဖြစ်ပါသည်:

ပုဂ္ဂိုလ်ထံမှ * ကို Select လုပ်ပါ

အတွင်းစိတ် Su_Person = Pe_ID အပေါ် Subdivision join

ဥပမာကျောက်ပြားနှစ်ပြားနှင့် subquery connect

အော်ပရေတာ SQL အတွင်းပိုင်း, မျိုးစုံစားပွဲကနေဒေတာတွေကိုပြန်လည်ရယူနိုင်ဖို့အသုံးပြုမှုနေသောဥပမာအထက်ပါထုံးစံ၌စီစဉ်ပေးနိုင်ပါသည် Join ကြောင့်နိယာမ၏အနည်းငယ်ရှုပ်ထွေးအပေါ်လုပ်ဆောင်နေသည်။ ကျောက်ပြားနှစ်ပြားများ၏တာဝန်ရှုပ်ထွေးစေရန်။ ဥပမာအားဖြင့်ကျနော်တို့သင်းဖွဲ့တစ်ခုချင်းစီအတွက်အပေါငျးတို့သဌာနများနှင့် ပတ်သက်. သတင်းအချက်အလက်သိုလှောင်ကြောင်းစားပွဲပေါ်မှာထွက်ခွာမည်ရှိသည်။ ဒီ table ထဲမှာဌာနခွဲနံပါတ်နှင့်ဝန်ထမ်းအရေအတွက်ကိုမှတ်တမ်းတင်ထားသော, စီဌာန၏နမူနာအချက်အလက်များ၏နာမတော်ဖြင့်ဖြည့်စွက်ရမည်ဖြစ်သည်။ ရှေ့ဆက်ရှာဖွေနေပါကသင်သည်ဤပြဿနာကိုဖြေရှင်းဖို့နှစ်ခုနည်းလမ်းများသုံးနိုငျဟုကျိုးနပ်သည်။

ပထမဦးဆုံးလမ်းကိုအမြည်းမှဦးစီးဌာနကစားပွဲပေါ်မှာချိတ်ဆက်ရန်ဖြစ်ပါသည်။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းဤကိစ္စတွင်အတွက်တောင်းဆိုမှုကိုဖြစ်နိုင်သည် Organize:

ပုဂ္ဂိုလ်ထံမှ Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name ကို Select လုပ်ပါ

အတွင်းစိတ် Su_Person = Pe_ID အပေါ် Subdivision join

အတွင်းစိတ် Su_Depart = Dep_ID နှင့် Pe_Depart = Dep_ID အပေါ်ထွက်သွား join

ထိုပြဿနာကိုဖြေရှင်းရေး၏ဒုတိယနည်းလမ်း - မရ data အားလုံးကိုဌာန၏စားပွဲပေါ်မှာကနေရှေးခယျြထားပေမယ့်မှသာလိုအပ်သောလိမ့်မည်သည့်အတွက် subquery သုံးစွဲဖို့ဖြစ်ပါတယ်။ ဒါကပထမဦးဆုံးနည်းလမ်းမတူဘဲ၌တည်ရှိ၏, ကတောင်းဆိုချက်၏အချိန်ကိုလျှော့ချပါလိမ့်မယ်။

ပုဂ္ဂိုလ်ထံမှ Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name ကို Select လုပ်ပါ

အတွင်းစိတ် Su_Person = Pe_ID အပေါ် Subdivision join

အတွင်းစိတ် Su_Depart = Dep_ID နှင့် Pe_Depart = Dep_ID အပေါ် T ကအဖြစ် (ကို Select လုပ်ပါ Dep_ID, Dep_Name ထွက်သွားရာမှ Pe_Depart) join

ဒါဟာထိုကဲ့သို့သောအစီအစဉ်သည်အမြဲတမ်းအလုပ်တောင်းဆိုမှုကိုအရှိန်မြှင့်မပေးနိုငျကွောငျးသတိပြုရကျိုးနပ်သည်။ ဒါကြောင့် (ထိုအသံအတိုးအကျယ်ကြီးလွန်းနေသည်လျှင်) ယာယီစားပွဲပေါ်မှာသို့တစ်ဦးအပိုဆောင်းနမူနာဒေတာသုံးစွဲဖို့လိုအပ်သည့်အခါတခါတရံအမှုပေါင်းရှိပါတယ်, ပြီးတော့သူကအဓိကနမူနာတွေနဲ့ပေါင်းစပ်ခဲ့သည်။

အသုံးပြုမှုအတွင်းပိုင်း၏သာဓကစားပွဲအရေအတွက်များတဲ့ထံမှနမူနာမှအော်ပရေတာကို Join

အဆိုပါဆောက်လုပ်ရေး data တွေကိုစားပွဲနှင့် subqueries ၏သိသာထင်ရှားသောပမာဏအပြန်အလှန်ချိတ်ဆက်နမူနာဘို့ရှုပ်ထွေးမေးမြန်းချက်များအသုံးပြုမှုပါဝင်သည်။ ဤရွေ့ကားလိုအပ်ချက်များကို SQL အတွင်းပိုင်း syntax ကို Join ကျေနပ်နိုင်ပါတယ်။ အော်ပရေတာများအသုံးပြုခြင်း၏ဥပမာများ, ဤကိစ္စတွင်အတွက်ဒါပေမယ့်လည်းအသိုက် subqueries ၏ကြီးမားသောအရေအတွက်ကိုနှင့်တကွ, အများအပြားသိုလှောင်မှုနေရာများကိုနမူနာကိုသာရှုပ်ထွေးစေနိုင်သည်။ ကွန်ကရစ်ဥပမာအားဖြင့်, သင်သည် system ကိုစားပွဲ (Inner SQL ကြေညာချက်ကို Join) ၏နမူနာအနေဖြင့်ဒေတာများယူနိုင်ပါတယ်။ ဥပမာ - စားပွဲ၏ 3 - ဤကိစ္စတွင်အတွက်မဟုတ်ဘဲရှုပ်ထွေးသောဖွဲ့စည်းပုံရပါလိမ့်မယ်။

ဤကိစ္စတွင်ချိတ်ဆက် (မူလတန်းစားပွဲပေါ်မှာ) နှင့်သုံးနောက်ထပ်အများအပြားဒေတာရွေးချယ်မှုကိုအခြေအနေများမိတ်ဆက်ပေးသည်။

အဆိုပါအတွင်းပိုင်းအော်ပရေတာပိုရှုပ်ထွေးသောစုံစမ်းမှုသတိရသင့်တယ် Join သုံးပြီးသောအခါ, ရှည်သူကအကောင်အထည်ဖော်ကြလိမ့်မည်, ဒီတော့သင်ပိုမိုလျင်မြန်စွာပြဿနာကိုလုပ်ဆောင်ခြင်းနှင့်ဖြေရှင်းနိုင်မယ့်နည်းလမ်းတွေရှာသင့်ပါတယ်။

ကောက်ချက်

အဆုံးမှာတော့ကျွန်မတဦးတည်းအရာလို့ပြောချင်ပါတယ်: databases ကိုအတူအလုပ် - က programming ကိုအတွက်အခက်ခဲဆုံးအရာမဟုတ်ဘူး, ဒါကြောင့်သင်တိုင်းတစ်ခုတည်းလူတစ်ဦးတစ်ဒေတာဘေ့စတည်ဆောက်ရန်အသိပညာဆည်းပူးနိုင်ပါလိမ့်နှင့်အချိန်ကြာလာတာနဲ့အမျှ, အတွေ့အကြုံရရှိပါလိမ့်မယ်လိုလျှင်, သင်ကပရော်ဖက်ရှင်နယ်အဆင့်တွင်သူတို့နှင့်အတူအလုပ်လုပ်ရ ။

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 my.delachieve.com. Theme powered by WordPress.