我有一个场景,我需要跨三个表进行连接。
表 #1 是用户列表 表 #2 包含具有特征 A 的用户 表 #3 包含具有特征 B 的用户
如果我想找到所有具有特征 A 或特征 B 的用户(在一个简单的 sql 中),我想我被卡住了。
如果我进行常规加入,则没有特征 A 的人不会出现在结果集中以查看他们是否具有特征 B(反之亦然)。但是,如果我从表 1 到表 2 和表 3 进行外部联接,我将获得表 1 中的所有行,而不管 where 子句的其余部分指定了对表 2 或表 3 的要求。
在你想出多个 sql 和临时表等等之前,这个程序要复杂得多,这只是简单的例子。它根据许多外部因素动态创建 sql,所以我试图让它在一个 sql 中工作。我希望有 in 或 exists 的组合会起作用,但我希望一些简单的事情。但基本上外连接总是会产生表 1 中的所有结果,是吗?