Wprowadzenie do SQL Server
John MacKintosh
Instructor
LEFT i RIGHT?LEFT i RIGHT?Tabela przyjęć
+------------+----------+
| Patient_ID | Admitted |
|------------+----------|
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
+------------+----------+
Tabela wypisów
+------------+------------+
| 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: zwraca tylko pasujące wierszeLEFT JOIN (lub RIGHT JOIN): wszystkie wiersze z tabeli głównej oraz dopasowania z tabeli łączonejNULL: wyświetlane, gdy brak dopasowaniaLEFT JOIN i RIGHT JOIN mogą być stosowane zamiennieWprowadzenie do SQL Server