Usando duas tabelas no
from
cláusula é funcionalmente equivalente a uma cross join
:select *
from A
cross join
B
Isso retorna uma linha de A para cada linha em B. Quando B está vazio, o resultado também está vazio. Você pode corrigir isso usando uma
left join
. Com uma left join
, você pode retornar linhas mesmo se uma das tabelas estiver vazia. Por exemplo:select *
from A
left join
B
on 1=1
Como a condição
1=1
é sempre verdadeiro, isso é como uma cross join
exceto que também funciona para tabelas vazias.