首页 > 解决方案 > 如何基于忽略表 2 中存在的数据以及两列的组合从表 1 中获取数据

问题描述

我有两个表 TABLE1 有两列 Col1 和 Col2

Col1|Col2

A|1

A|2 

A|3

B|1

B|2

B|3

C|1

C|2

C|3

具有两列 Col1 和 Col2 的表 2

Col1|Col2

A|1

B|2

B|3

我希望输出为第一个表的数据,而忽略第二个表中的数据。TABLE1 中的数据由两列 Col1 和 Col2 组合而成

输出

Col1|Col2

A|2 

A|3

B|1

C|1

C|2

C|3

我尝试了一些解决方案

SELECT Col1, Col2 FROM  Table1 t1
 inner join Table2 t2 on
 t1.Col1 <> (t2.Col1)
 and
 t1.Col2 <> (t2.Col2)

另外,我尝试了左连接和提取,但没有得到正确的解决方案。有人可以为上述查询提供任何解决方案。提前致谢。

标签: sql-server

解决方案


SELECT t1.Col1, t1.Col2 
FROM  Table1 t1
LEFT JOIN Table2 t2 on
t1.Col1 = t2.Col1
AND t1.Col2 = t2.Col2 
WHERE t2.Col1 IS NULL

你做了一个左连接,所以你从 table1 中取出所有东西,并通过询问你是否得到 NULL 来检查你在 table2 上没有受到任何影响


推荐阅读