SQL joins

Rzućmy okiem na różne typy połączeń pomiędzy tabelami na przykładzie następujących danych:

Tabela – Names

IdName
1Alicja
2Bogdan
3Czarek

Tabela – Age

IdAge
230
325
445

INNER JOIN

Zapytanie

SELECT n.ID, n.Name, n.Age
FROM Names n
INNER JOIN Age a ON n.Id = a.Id

Wynik

IdNameAge
2Bogdan30
3Czarek25

LEFT JOIN

Zapytanie

SELECT n.ID, n.Name, n.Age
FROM Names n
LEFT JOIN Age a ON n.Id = a.Id

Wynik

IdNameAge
1AlicjaNULL
2Bogdan30
3Czarek25

RIGHT JOIN

Zapytanie

SELECT n.ID, n.Name, n.Age
FROM Names n
RIGHT JOIN Age a ON n.Id = a.Id

Wynik

IdNameAge
2Bogdan30
3Czarek25
4NULL45

FULL JOIN

Zapytanie

SELECT n.ID, n.Name, n.Age
FROM Names n
JOIN Age a ON n.Id = a.Id

Wynik

IdNameAge
1AlicjaNULL
2Bogdan30
3Czarek25
4NULL45

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

IdNameAge
1AlicjaNULL
4NULL45

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

IdNameAge
1AlicjaNULL

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

IdNameAge
4NULL45