Rzućmy okiem na różne typy połączeń pomiędzy tabelami na przykładzie następujących danych:
Tabela – Names
| Id | Name |
|---|
| 1 | Alicja |
| 2 | Bogdan |
| 3 | Czarek |
Tabela – Age
INNER JOIN
Zapytanie
SELECT n.ID, n.Name, n.Age
FROM Names n
INNER JOIN Age a ON n.Id = a.Id
Wynik
| Id | Name | Age |
|---|
| 2 | Bogdan | 30 |
| 3 | Czarek | 25 |
LEFT JOIN
Zapytanie
SELECT n.ID, n.Name, n.Age
FROM Names n
LEFT JOIN Age a ON n.Id = a.Id
Wynik
| Id | Name | Age |
|---|
| 1 | Alicja | NULL |
| 2 | Bogdan | 30 |
| 3 | Czarek | 25 |
RIGHT JOIN
Zapytanie
SELECT n.ID, n.Name, n.Age
FROM Names n
RIGHT JOIN Age a ON n.Id = a.Id
Wynik
| Id | Name | Age |
|---|
| 2 | Bogdan | 30 |
| 3 | Czarek | 25 |
| 4 | NULL | 45 |
FULL JOIN
Zapytanie
SELECT n.ID, n.Name, n.Age
FROM Names n
JOIN Age a ON n.Id = a.Id
Wynik
| Id | Name | Age |
|---|
| 1 | Alicja | NULL |
| 2 | Bogdan | 30 |
| 3 | Czarek | 25 |
| 4 | NULL | 45 |
FULL OUTER JOIN
Zapytanie
SELECT n.ID, n.Name, n.Age
FROM Names n
JOIN Age a ON n.Id = a.Id
WHERE n.Id IS NULL OR a.Id IS NULL
Wynik
| Id | Name | Age |
|---|
| 1 | Alicja | NULL |
| 4 | NULL | 45 |
LEFT OUTER JOIN
Zapytanie
SELECT n.ID, n.Name, n.Age
FROM Names n
JOIN Age a ON n.Id = a.Id
WHERE a.Id IS NULL
Wynik
RIGHT OUTER JOIN
Zapytanie
SELECT n.ID, n.Name, n.Age
FROM Names n
JOIN Age a ON n.Id = a.Id
WHERE n.Id IS NULL
Wynik