首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MS 2014中将两个表中的列合并为一个表

在MS 2014中将两个表中的列合并为一个表
EN

Stack Overflow用户
提问于 2014-11-13 22:31:46
回答 2查看 199关注 0票数 0

我使用这个link来帮助我达到我现在的位置,但是现在我的输出是错误的。

我有2列,ColumnA来自TableA,ColumnB来自表B。我希望TableC包含2列,ColumnA和ColumnB。MatchA和MatchB是完全相同的。MatchA在TableA,MatchB在TableB。@InputVal是如何从ColumnA + B中选择值的,下面是我所做的工作:

代码语言:javascript
复制
SELECT ColumnA, ColumnB
FROM TableA, TableB
WHERE MatchA=MatchB
AND MatchA=@InputVal

这将产生输出:

代码语言:javascript
复制
ColumnA   ColumnB
44        Test1
45        Test1
46        Test1
44        Test2
45        Test2
46        Test2
44        Test3
45        Test3 
46        Test3

从逻辑上讲,应该是:

代码语言:javascript
复制
ColumnA   ColumnB
44        Test1
45        Test2
46        Test3

我怎样才能纠正我的逻辑来修正这个缺陷呢?我经历了很多语句构造的变化,我似乎无法理解它。谢谢。

编辑:用户snow_FFFFFF拥有解决方案的权限,但因为遗漏了一个细节,所以缺少了一个部件。

代码语言:javascript
复制
SELECT TableA.ColumnA, TableB.ColumnB
FROM TableA INNER JOIN TableB ON TableA.MatchA = TableB.MatchB
AND TableA.SecondMatchA=TableB.SecondMatchB --The change needed
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-13 22:39:02

我想你想加入你们的行列:

代码语言:javascript
复制
SELECT TableA.ColumnA, TableB.ColumnB
FROM TableA INNER JOIN TableB ON TableA.MatchA = TableB.MatchB

内部联接将只返回每个有匹配的行。左外部联接(而不是内部连接)将为您提供TableA中的所有行和连接成功的TableB中的值。

现在,通过在表之间使用逗号来执行交叉连接。

票数 1
EN

Stack Overflow用户

发布于 2014-11-13 22:54:48

尝试使用UNION SELECT从两个表合并列,如下所示:

代码语言:javascript
复制
SELECT TableB.ColumnB FROM TableB
UNION ALL
SELECT TableA.ColumnA FROM TableA WHERE TableA.MatchA = @InputVal
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26919706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档