Sử dụng hai bảng trong from
về mặt chức năng tương đương với một cross join
:
select *
from A
cross join
B
Điều này trả về một hàng A cho mọi hàng trong B. Khi B trống, kết quả cũng trống. Bạn có thể khắc phục điều đó bằng cách sử dụng left join
. Với left join
, bạn có thể trả về các hàng ngay cả khi một trong các bảng trống. Ví dụ:
select *
from A
left join
B
on 1=1
Như điều kiện 1=1
luôn đúng, điều này giống như cross join
ngoại trừ nó cũng hoạt động cho các bảng trống.