SQL JOIN

  • အရေးပိုကြီး စာကြိုး SQL Aliases
  • နောက်ပိုင်း စာကြိုး SQL Inner Join

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

Join နှင့် Key

အကယ်၍ ပြင်းထန်သော အကျိုးသက်ရောက်ချက်ကို ရရှိရန် နှစ်ခုနှင့် ပိုသော အချက်အလက်များမှ အကျိုးသက်ရောက်ချက်ကို ရရှိရန် ကျသင့်သည်။ အကျိုးသက်ရောက်ချက်ကို ပေါင်းစပ်နိုင်သည်။

အချက်အလက်များကို ပေါင်းစပ်နိုင်သော အချက်အလက်ကို အကြိမ်ကြိမ် အသုံးပြုနိုင်သည်။ ပြားခွန်း (Primary Key) သည် လွှာတစ်လွှာ ဖြစ်ပြီး၊ အချက်အလက်တွင် ရှိသော ခုနစ်လုံးလုံး အချက်အလက်မှာ မတူညီဘဲ ရှိပါသည်။ အချက်အလက်တွင် ရှိသော ပြားခွန်းတစ်ခု၏ အချက်အလက်မှာ မတူညီဘဲ ရှိပါသည်။ အရာဝတ္တုကို ပြန်လည်စစ်ဆေးမှုများ အတွက် အချက်အလက်တွင် အချက်အလက်ကို ပြန်လည်စစ်ဆေးနိုင်သည်။

ကြည့်ပါ "Persons" အချက်အလက်၊

Id_P LastName FirstName လမ်းခွဲ မြို့
1 Adams John အော့ခ် လမ်း လန်ဒန်
2 ဘုရှ် ဂျော့ ပုံစံလမ်း နယူးကရောင်
3 Carter Thomas ချန်ဂျန်း လမ်း ဘဂျင်ဘူ

မေးမြန်းပါ၊ "Id_P" လွှာသည် Persons အချက်အလက်တွင် ပြားခွန်းဖြစ်ပြီး၊ အမည်တူသော လူတို့မှာ အချက်အလက်တူသည်ဖြစ်စေ၊ Id_P သည် သူတို့ကို ခွဲခြားနိုင်ပါသည်။

နောက်ပိုင်းတွင် "Orders" အချက်အလက်ကို ကြည့်ပါ၊

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

မေးမြန်းပါ၊ "Id_O" လွှာသည် Orders အချက်အလက်တွင် ပြားခွန်းဖြစ်ပြီး၊ "Orders" အချက်အလက်တွင် "Id_P" လွှာသည် "Persons" အချက်အလက်တွင် လူတို့၏ အမည်ကို အသုံးပြုဘဲ မည်သည့် လူကိုမဆို မတူညီသော အမည်ကို သုံးနိုင်သည်။

请留意,"Id_P" 列把上面的两个表联系了起来。

引用两个表

我们可以通过引用两个表的方式,从两个表中获取数据:

谁订购了产品,并且他们订购了什么产品?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 

结果集:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

SQL JOIN - 使用 Join

除了上面的方法,我们也可以使用关键词 JOIN 来从两个表中获取数据。

如果我们希望列出所有人的定购,可以使用下面的 SELECT 语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

结果集:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

不同的 SQL JOIN

除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。

下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

  • JOIN: 如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: တခုခုတွင် မျှော်လင့်သော တခုခု ရှိပါက တိုက်ဖြတ် ပြီ
  • အရေးပိုကြီး စာကြိုး SQL Aliases
  • နောက်ပိုင်း စာကြိုး SQL Inner Join