Použití dvou tabulek v from
klauzule je funkčně ekvivalentní cross join
:
select *
from A
cross join
B
To vrátí řádek A pro každý řádek v B. Když je B prázdné, výsledek je také prázdný. Můžete to opravit pomocí left join
. S left join
, můžete vrátit řádky, i když je jedna z tabulek prázdná. Například:
select *
from A
left join
B
on 1=1
Jako podmínka 1=1
je vždy pravda, je to jako cross join
kromě toho funguje také pro prázdné tabulky.