如何解决如何在具有多个共同属性的表中执行自然全外连接?
MysqL> select * from r;
+------+------+------+
| A | B | C |
| 1 | 2 | 3 |
| 1 | 2 | 4 |
| 2 | 1 | 3 |
| 3 | 1 | 3 |
+------+------+------+
MysqL> select * from s;
+------+------+------+
| A | B | D |
| 1 | 2 | 1 |
| 2 | 1 | 5 |
| 4 | 2 | 1 |
| 3 | 2 | 1 |
+------+------+------+
现在我想执行自然全外连接。我尝试过左外连接和右外连接以及完全外连接,但它们在执行时只采用了 1 个共同元素。
但是这里要怎么做。
问题是要求在表 r 自然全外连接 s 中包含空条目的行数。
解决方法
您可以“链接”左连接以实现对 full join
的非常好的近似:
select *
from (select a,b from r
union -- on purpose to remove duplicates
select a,b from s
) rs left join
r
using (a,b) left join
s
using (a,b);
如果 a
/b
可以在 NULL
或 r
中有 s
值,这会变得更加棘手。如果是这种情况,请提出一个新问题,并提供适当的样本数据和所需的结果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。