Połączenia wewnętrzne tabel (INNER) JOIN, NATURAL JOIN

Do łączenia wewnętrznego tabel używamy złączenia JOIN (oznaczanego często dokładnie INNER JOIN - łączenie wewnętrzne).
inner

select
*
from tabela1 p JOIN tabela2 r on p.kolumna_tab1 = r.kolumna_tab2

Taki sam rezultat da

select
*
from tabela1 p INNER JOIN tabela2 r on p.kolumna_tab1 = r.kolumna_tab2

W przypadku, gdy w łączeniu kolumny w obu tabelach mają takie same nazwy możemy nieco skrócić zapytanie przy użyciu USING

select
*
from tabela1 p INNER JOIN tabela2 r USING(kolumna)

Możliwe jest także pozostawienie Oracle'owi doboru łączenia poprzez użycie NATURAL JOIN, jednak to rozwiązanie nie jest polecane dla tabel posiadających kilka kolumn o podobnej konstrukcji i przechowywanych danych.

select
*
from pracownicy p NATURAL JOIN zespoly r

Kolumny używane do utworzenia łączenia możemy podejrzeć w Explain plan
explainplan2
Ilustracje joina pobrana z https://www.youtube.com/watch?v=yNThOAuZtC0

Tags: