Introducción a SQL Server
John MacKintosh
Instructor
LEFT y RIGHT joins?LEFT y RIGHT joins?Tabla de admisiones
+------------+----------+
| Patient_ID | Admitted |
|------------+----------|
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
+------------+----------+
Tabla de altas
+------------+------------+
| 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: solo devuelve filas coincidentesLEFT JOIN (o RIGHT JOIN): todas las filas de la tabla principal más coincidencias de la tabla unidaNULL: se muestra si no hay coincidenciaLEFT JOIN y RIGHT JOIN pueden intercambiarseIntroducción a SQL Server