Połączenia z podzapytaniami (LATERAL, CROSS APPLY, OUTER APPLY)

LATERAL - Połączenie typu cross join

select *
from tabela1 e,
LATERAL
(select kolumna1 from tabela2 d
where d.kolumna2= e.kolumna3)

CROSS APPLY - Połączenie typu wewnętrznego

select *
from tabela1 e
CROSS APPLY
(select kolumna1 from tabela2 d
where d.kolumna2= e.kolumna3)

OUTER APPLY - Połączenie typu wewnętrznego i lewostronnego

select *
from tabela1 e
OUTER APPLY
(select kolumna1 from tabela2 d
where d.kolumna2 = e.kolumna3)

Jeśli chcemy w OUTER APPLY chcemy mieć łączenie prawostronne musimy zamienić miejscami zapytania.