Utilisation de deux tables dans le from
la clause est fonctionnellement équivalente à une cross join
:
select *
from A
cross join
B
Cela renvoie une ligne de A pour chaque ligne de B. Lorsque B est vide, le résultat est également vide. Vous pouvez résoudre ce problème en utilisant une left join
. Avec une left join
, vous pouvez renvoyer des lignes même si l'une des tables est vide. Par exemple :
select *
from A
left join
B
on 1=1
Comme condition 1=1
est toujours vrai, c'est comme une cross join
sauf que cela fonctionne aussi pour les tables vides.