SQL - การใช้ Joins
SQL Joinsอนุประโยคใช้เพื่อรวมระเบียนจากตารางสองตารางขึ้นไปในฐานข้อมูล JOIN เป็นวิธีการรวมฟิลด์จากสองตารางโดยใช้ค่าร่วมกันสำหรับแต่ละตาราง
พิจารณาสองตารางต่อไปนี้ -
Table 1 - ตารางลูกค้า
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Table 2 - ตารางคำสั่งซื้อ
+-----+---------------------+-------------+--------+
|OID | DATE | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 | 3 | 3000 |
| 100 | 2009-10-08 00:00:00 | 3 | 1500 |
| 101 | 2009-11-20 00:00:00 | 2 | 1560 |
| 103 | 2008-05-20 00:00:00 | 4 | 2060 |
+-----+---------------------+-------------+--------+
ตอนนี้ให้เราเข้าร่วมสองตารางนี้ในคำสั่ง SELECT ของเราดังที่แสดงด้านล่าง
SQL> SELECT ID, NAME, AGE, AMOUNT
FROM CUSTOMERS, ORDERS
WHERE CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้
+----+----------+-----+--------+
| ID | NAME | AGE | AMOUNT |
+----+----------+-----+--------+
| 3 | kaushik | 23 | 3000 |
| 3 | kaushik | 23 | 1500 |
| 2 | Khilan | 25 | 1560 |
| 4 | Chaitali | 25 | 2060 |
+----+----------+-----+--------+
ที่นี่เป็นที่สังเกตได้ว่าการรวมจะดำเนินการในส่วนคำสั่ง WHERE สามารถใช้ตัวดำเนินการหลายตัวเพื่อเข้าร่วมตารางเช่น =, <,>, <>, <=,> =,! =, ระหว่าง, LIKE และ NOT; สามารถใช้ร่วมกับตารางได้ อย่างไรก็ตามตัวดำเนินการที่พบมากที่สุดคือเท่ากับสัญลักษณ์
มีการรวมประเภทต่างๆใน SQL -
INNER JOIN - ส่งคืนแถวเมื่อมีการจับคู่ในทั้งสองตาราง
LEFT JOIN - ส่งคืนแถวทั้งหมดจากตารางด้านซ้ายแม้ว่าจะไม่มีรายการที่ตรงกันในตารางด้านขวา
RIGHT JOIN - ส่งคืนแถวทั้งหมดจากตารางด้านขวาแม้ว่าจะไม่มีรายการที่ตรงกันในตารางด้านซ้าย
FULL JOIN - ส่งคืนแถวเมื่อมีการจับคู่ในตารางใดตารางหนึ่ง
SELF JOIN - ใช้เพื่อรวมตารางเข้ากับตัวเองราวกับว่าตารางเป็นสองตารางโดยเปลี่ยนชื่อตารางอย่างน้อยหนึ่งตารางในคำสั่ง SQL เป็นการชั่วคราว
CARTESIAN JOIN - ส่งคืนผลิตภัณฑ์คาร์ทีเซียนของชุดของเรกคอร์ดจากตารางที่เข้าร่วมสองตารางขึ้นไป
ตอนนี้ให้เราคุยรายละเอียดการรวมเหล่านี้แต่ละรายการ