Usando dos tablas en el from
la cláusula es funcionalmente equivalente a una cross join
:
select *
from A
cross join
B
Esto devuelve una fila de A por cada fila de B. Cuando B está vacío, el resultado también está vacío. Puedes arreglar eso usando una left join
. Con una left join
, puede devolver filas incluso si una de las tablas está vacía. Por ejemplo:
select *
from A
left join
B
on 1=1
Como condición 1=1
siempre es cierto, esto es como una cross join
excepto que también funciona para mesas vacías.