Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione várias tabelas quando uma tabela estiver vazia no MySQL


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.