SQL Server เบื้องต้น
John MacKintosh
Instructor
LEFT และ RIGHT joins?LEFT และ RIGHT joins?ตาราง Admissions
+------------+----------+
| Patient_ID | Admitted |
|------------+----------|
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
+------------+----------+
ตาราง Discharges
+------------+------------+
| Patient_ID | Discharged |
|------------+------------|
| 1 | 1 |
| 3 | 1 |
| 4 | 1 |
+------------+------------+
INNER JOIN:
+------------+----------+------------|
| Patient_ID | Admitted | Discharged |
|------------+----------|------------|
| 1 | 1 | 1 |
| 3 | 1 | 1 |
| 4 | 1 | 1 |
+------------+----------+------------+
LEFT JOIN:
+------------+----------+------------|
| Patient_ID | Admitted | Discharged |
|------------+----------|------------|
| 1 | 1 | 1 |
| 2 | 1 | NULL |
| 3 | 1 | 1 |
| 4 | 1 | 1 |
| 5 | 1 | NULL |
+------------+----------+------------+
SELECT
Admitted.Patient_ID,
Admitted,
Discharged
FROM Admitted
LEFT JOIN Discharged ON Discharged.Patient_ID = Admitted.Patient_ID;
SELECT
Admitted.Patient_ID,
Admitted,
Discharged
FROM Admitted
LEFT JOIN Discharged ON Discharged.Patient_ID = Admitted.Patient_ID;
+------------+----------+------------|
| Patient_ID | Admitted | Discharged |
|------------+----------|------------|
| 1 | 1 | 1 |
| 2 | 1 | NULL |
| 3 | 1 | 1 |
| 4 | 1 | 1 |
| 5 | 1 | NULL |
+------------+----------+------------+
SELECT
Admitted.Patient_ID,
Admitted,
Discharged
FROM Discharged
RIGHT JOIN Admitted ON Admitted.Patient_ID = Discharged.Patient_ID;
SELECT
Admitted.Patient_ID,
Admitted,
Discharged
FROM Discharged
RIGHT JOIN Admitted ON Admitted.Patient_ID = Discharged.Patient_ID;
+------------+----------+------------|
| Patient_ID | Admitted | Discharged |
|------------+----------|------------|
| 1 | 1 | 1 |
| 2 | 1 | NULL |
| 3 | 1 | 1 |
| 4 | 1 | 1 |
| 5 | 1 | NULL |
+------------+----------+------------+
INNER JOIN: คืนค่าเฉพาะแถวที่ตรงกันLEFT JOIN (หรือ RIGHT JOIN): คืนค่าทุกแถวจากตารางหลัก พร้อมแถวที่ตรงกันจากตารางที่ joinNULL: แสดงเมื่อไม่พบข้อมูลที่ตรงกันLEFT JOIN และ RIGHT JOIN สามารถใช้แทนกันได้SQL Server เบื้องต้น