首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL查询查找两个表之间的匹配列组合

SQL查询查找两个表之间的匹配列组合
EN

Stack Overflow用户
提问于 2013-10-29 11:16:34
回答 3查看 1.8K关注 0票数 0

我想知道以下情况的查询。

代码语言:javascript
运行
复制
Table 1 :         Table 2

Col1    Col2    Col1    Col2
Sandy    1     Sandy     24
Reena    2     Reena     32
Swathi   3     Swathi    3
Reenu    4     Karthik   5
               Reenu     4
               Muthu     6

返回的查询:

  1. 表2中不在表1中的行( Karthik和Muthu行应该是结果)
  2. 它应该比较列组合,并应返回已更改的列组合。

最后,我应该得到以下结果:

代码语言:javascript
运行
复制
Table1.Col1 Table1.col2 Table2.col2
Sandy         1          24
Reena         2          32
Karthik      NA          5
Muthu        NA          6

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2013-10-29 11:24:32

代码语言:javascript
运行
复制
select t2.col1, t1.col2, t2.col2 as t2c
from table2 t2
left join table1 t1 on t1.Col1 = t2.Col1
where t1.Col2 is null or t1.Col2 <> t2.Col2

如果您想要解释的'NA',您应该这样做(功能取决于您的dbms)

代码语言:javascript
运行
复制
coalesce(<somefunctionToConvertinttostring>(t1.col2), 'NA')

sqlFiddle

票数 1
EN

Stack Overflow用户

发布于 2013-10-29 11:26:21

请尝试:

代码语言:javascript
运行
复制
select a.Col1, a.Col2, b.Col2 
from Table2 a left join Table1 b on a.Col1=b.Col1 
where b.Col1 is null

union

select a.Col1, a.Col2, b.Col2 
from Table2 a inner join Table1 b on a.Col1=b.Col1 
where a.Col2<>b.Col2
票数 0
EN

Stack Overflow用户

发布于 2015-02-12 10:06:33

选择c3,ISNULL(C2,'NA')作为C2,从Table1右联接选择c4

Table2 on Table1 .c1 =表2.C3,其中ISNULL(表1.c2,0) <>表2.C4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19656749

复制
相关文章

相似问题

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