Tsari SQL JOIN
- الصفحة السابقة SQL Aliases
- الصفحة التالية SQL Inner Join
SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
Join 和 Key
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。
数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
Kwai, kai kiyayi "Persons" tabbin:
Id_P | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
Rantce, "Id_P" tsaɗin tsa tabbin "Persons" kifin. Ana fahimta ta hanyar haka, kuma ba za a iya samun tabbin dabbobi na Id_P wanda yake da kimanin yawan mutum.
Kwai, kai kiyayi "Orders" tabbin:
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
5 | 34764 | 65 |
Rantce, "Id_O" tsaɗin tsa tabbin "Orders" kifin, kuma, "Orders" tabbin "Id_P" tsaɗin yana amfaniwa don nuna "Persons" tabbin mutum, kuma yana samun sunan mutumin da yake.
يرجى ملاحظة أن "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