Database SQL – LEFT JOIN
จากบทความ เรื่อง SQL JOIN statement โดยปกติจะใช้สร้างความสัมพันธ์ของ column ระหว่าง table ที่เหมือนกัน ซึ่ง SQL LEFT JOIN ก็เช่นกัน แต่จะอาศัย table ด้านซ้าย หรือ table แรก เป็นข้อมูลตั้งต้นหลัก โดยข้อมูลบรรทัดที่ table ซ้ายมี แต่ table ขวา ไม่มี จะถือว่าเป็นข้อมูลใหม่ได้ด้วย โดยข้อมูลใหม่ที่ว่าจะมีแค่ข้อมูลจาก table ซ้ายเท่านั้นส่วน column ที่เกิดจาก table ขวา จะมีค่าเป็น NULL เพราะไม่มีข้อมูล แต่สำหรับบรรทัดที่มีเฉพาะ table ขวา แต่ไม่มีใน table ซ้าย จะถือว่าไม่เป็นข้อมูลใหม่ เราสามารถเรียกอีกอย่างว่า “LEFT OUTER JOIN”
รูปแบบ (Syntax)
SELECT table1.column1, table2.column2...
FROM table1
LEFT JOIN table2
ON table1.common_field = table2.common_field;
ตัวอย่าง SQL LEFT JOIN statement
Table 1 – สร้าง CUSTOMERS table
+----+----------+-----+-----------+----------+
| 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 – สร้าง ORDERS table
+-----+---------------------+-------------+--------+
|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 |
+-----+---------------------+-------------+--------+
คำสั่ง LEFT JOIN statement
SQL> SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
LEFT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
ผลลัพธ์ที่ได้ของ SQL LEFT JOIN คือเราสามารถนำเอาข้อมูล column จากทั้ง 2 table มาเชื่อมต่อกันโดยอาศัย table ซ้าย หรือ table CUSTOMERS เป็นหลัก ซึ่งถ้าไม่มีข้อมูลใน table ขวา หรือ table ORDERS จะถือว่าข้อมูลเป็น NULL แทน
+----+----------+--------+---------------------+
| ID | NAME | AMOUNT | DATE |
+----+----------+--------+---------------------+
| 1 | Ramesh | NULL | NULL |
| 2 | Khilan | 1560 | 2009-11-20 00:00:00 |
| 3 | kaushik | 3000 | 2009-10-08 00:00:00 |
| 3 | kaushik | 1500 | 2009-10-08 00:00:00 |
| 4 | Chaitali | 2060 | 2008-05-20 00:00:00 |
| 5 | Hardik | NULL | NULL |
| 6 | Komal | NULL | NULL |
| 7 | Muffy | NULL | NULL |
+----+----------+--------+---------------------+
Reference:
รวมคำสั่ง SQL Command พื้นฐานเบื้องต้น
Author: Suphakit Annoppornchai
Credit: https://saixiii.com, https://www.tutorialspoint.com
[…] LEFT JOIN − แสดงผลข้อมูลของ table ทางซ้ายทั้งหมด (table 1) และ ข้อมูลของ table ทางขวาที่ตรงเงื่อนไข (table 2) […]