2

我正在 mssql 中编写以下存储过程。

foo 和 bar 列在 table1 中,id 在 table2 中。

select foo, bar, id from table1
join table2 on table2.foo = foo.foo

我的问题是,如果只有 foo 和 bar 的数据,我希望它返回

a, b, 空

但是,如果 id 不存在但 foo 和 bar 存在,它根本不会返回一行。

有没有一种优雅的方式来完成这项工作?

4

2 回答 2

1

这应该可以解决您的问题:

SELECT foo, bar, id FROM table1
OUTER JOIN table2 on table2.foo = foo.foo
于 2013-06-14T00:24:02.397 回答
0

我想你正在寻找一个FULL OUTER JOIN查询

SELECT a.foo, a.bar, a.id 
FROM table1 a
FULL OUTER JOIN table2 b 
ON a.foo = b.foo

您可以查看此连接的可视化解释

于 2013-06-14T00:24:15.290 回答