5

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

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

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

我虽然做一个简单的笛卡尔积会起作用

SELECT * FROM TableA, TableB

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

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

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

谢谢

4

1 回答 1

6

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

select  *
        TableA a
full outer join
        TableB b
on      1=1

要始终返回至少一行,即使TableATableB是空的,您也可以使用假表:

select  *
from    (
        select  1 as col1
        ) fake
left join
        TableA a
on      1=1
left join
        TableB b
on      1=1
于 2012-11-26T20:11:37.863 回答