如何连接两表合并相同列并保留各自独有列?
解决方案
你的问题出在重复选择了两张表中完全相同的列,并且添加了不必要的group by语句。由于表E和表P的Col 1、Col 2、Col 3列名和值完全一致,连接后这些列的内容没有差异,只需保留其中一张表的对应列即可。
正确的SQL语句
select p.[Col 1], p.[Col 2], p.[Col 3], e.[Col 4], p.[Col 5] from p inner join e on p.[Col 1] = e.[Col 1] and p.[Col 2] = e.[Col 2] and p.[Col 3] = e.[Col 3]
说明
- 仅选择一张表(这里选表P)的Col 1/Col 2/Col 3,避免重复列出现;
- 同时选中表E独有的Col 4和表P独有的Col 5;
- 由于两表的连接列完全匹配,使用
inner join即可得到完整的合并结果,不需要group by(连接条件已经保证每行唯一匹配,不会产生重复行)。
预期结果表EP
| Col 1 | Col 2 | Col 3 | Col 4 | Col 5 |
|---|---|---|---|---|
| Val A | Val C | Val E | Val X | Val Z |
| Val B | Val D | Val F | Val Y | Val K |
内容的提问来源于stack exchange,提问作者grimrol123
相关产品推荐
相关产品推荐

