10. OUTER JOIN
OUTER JOIN เป็นการเชื่อม table ที่ต้องการแสดงข้อมูลจาก table นั้น โดยค่าที่ใช้เชื่อมไม่จำเป็นต้องมีค่าเท่ากับอีก
table หนึ่ง การเขียนคำสั่งให้ใช้ (+) หน้าข้อมูลที่ต้องการแสดงรายการออกมา
และจะแสดงค่าว่างสำหรับกรณีที่ไม่มีข้อมูล
SELECT cloumn1, column2,..
FROM table1, table2
WHERE table1.column1 (+) = table2.column2;
NOTE: เป็นการแสดงข้อมูลทั้งหมดของ table2
ตัวอย่าง สมมติมี 2 table คือ Employee และ Department
Employee
Name |
Dept |
1 |
10 |
2 |
10 |
3 |
20 |
4 |
20 |
5 |
30 |
Department
ในฐานข้อมูล Oracle สามารถเขียนได้ดังนี้
SELECT E.Name, D.Dept
FROM Employee E, Department D
WHERE E.Dept (+) = D.Dept;
ผลลัพธ์
Name |
Dept |
1 |
10 |
2 |
10 |
3 |
20 |
4 |
20 |
5 |
30 |
|
40 |
Microsoft มีมาตรฐานการเขียน OUTER JOIN ซึ่งสามารถใช้กับ Microsoft Access,
Visual Basic เป็นต้น
LEFT JOIN ใช้สำหรับการแสดงเรคคอร์ดของ table แรกทั้งหมดถึงแม้จะมีเรคคอร์ดของ
table แรกมีค่าของฟิลด์ที่ไม่ตรงกับฟิลด์เชื่อมของ table ที่สอง
ไวยากรณ์ OUTER JOIN 1 สำหรับการเชื่อมตาม ด้านซ้ายของความสัมพันธ์
SELECT list-of-columns
FROM table1,table2,..
LEFT JOIN table1 ON table1.column1 = table2.column2
RIGHT JOIN ใช้สำหรับการแสดงเรคคอร์ดของ table ที่สองทั้งหมด ถึงแม้ว่าจะมีเรคคอร์ดของ
table ที่สองมีค่าของฟิลด์ที่ไม่ตรงกับฟิลด์เชื่อมของ table แรก
ไวยากรณ์ OUTER JOIN 2 สำหรับการเชื่อมตาม ด้านขวาของความสัมพันธ์
SELECT list-of-columns
FROM table1,table2,..
RIGHT JOIN table2 ON table1.column1 = table2.column2
จากตัวอย่าง ฐานข้อมูล Access สามารถเขียนได้ดังนี้
SELECT Employee.Name, Department.Dept
FROM Department LEFT JOIN Employee ON Department.Dept = Employee.Dept;
|