笛卡尔连接两个没有记录的表

Mik*_*ike 4 sql sql-server

我必须将表A(税务相关)加入表B(客户相关)

我最多拉1条记录但有时没有记录.

现在我需要将组合记录返回给用户

我虽然做一个简单的笛卡尔积可以有效

SELECT * FROM TableA, TableB
Run Code Online (Sandbox Code Playgroud)

但如果TableA或TableB为空,则不起作用

我会做一个完整的外部联接,但现在没有任何东西可以加入.我可以创建带有标识列的临时表,然后加入它们(因为1 = 1)

但我正在寻找一种不同的方式?

谢谢

And*_*mar 6

根据您自己的建议,您可以使用a full outer join来保证一行:

select  *
        TableA a
full outer join
        TableB b
on      1=1
Run Code Online (Sandbox Code Playgroud)

要始终返回至少一行,即使TableA并且TableB是emtpy,您也可以使用假表:

select  *
from    (
        select  1 as col1
        ) fake
left join
        TableA a
on      1=1
left join
        TableB b
on      1=1
Run Code Online (Sandbox Code Playgroud)