Sql server 如何在忽略表2中的数据并结合两列的基础上从表1中获取数据

Sql server 如何在忽略表2中的数据并结合两列的基础上从表1中获取数据,sql-server,Sql Server,我有两张桌子 表1有两列Col1和Col2 Col1|Col2 A|1 A|2 A|3 B|1 B|2 B|3 C|1 C|2 C|3 Col1|Col2 A|1 B|2 B|3 表2有两列Col1和Col2 Col1|Col2 A|1 A|2 A|3 B|1 B|2 B|3 C|1 C|2 C|3 Col1|Col2 A|1 B|2 B|3 我希望输出为第一个表的数据,忽略第二个表的数据。表1中的数据由两列Col1和Col2组合而成

我有两张桌子 表1有两列Col1和Col2

Col1|Col2

A|1

A|2 

A|3

B|1

B|2

B|3

C|1

C|2

C|3
Col1|Col2

A|1

B|2

B|3
表2有两列Col1和Col2

Col1|Col2

A|1

A|2 

A|3

B|1

B|2

B|3

C|1

C|2

C|3
Col1|Col2

A|1

B|2

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

Col1|Col2

A|1

A|2 

A|3

B|1

B|2

B|3

C|1

C|2

C|3
Col1|Col2

A|1

B|2

B|3
输出

Col1|Col2

A|2 

A|3

B|1

C|1

C|2

C|3
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)
从表1 t1中选择Col1、Col2
内部连接表2 t2
t1.Col1(t2.Col1)
和
t1.Col2(t2.Col2)
另外,我尝试了左连接和提取,但没有得到正确的解决方案。 有人能为上述问题提供解决方案吗。提前谢谢

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
你做了一个左连接,所以你从表1中获取了所有内容,并通过询问你是否得到空值来检查你在表2上没有得到任何点击

select col1 + ' ' + cast(col2 as varchar) as fullname from @tb1 
where col1 + ' ' + cast(col2 as varchar) not in (select col1 + ' ' + cast(col2 as varchar) from @tb2)

输出

Col1|Col2

A|2 

A|3

B|1

C|1

C|2

C|3
A 2
A 3
B 1
C 1
C 2
C 3

您可以使用
不存在
忽略另一个表中的相同数据

SELECT T1.Col1, T1.Col2
FROM Table1 T1
WHERE NOT EXISTS (SELECT 1/0 FROM Table2 T2 WHERE T2.Col1 = T1.Col1 AND T2.Col2 = T1.Col2)

不客气。不过,在处理大数据时,此查询可能会变得有点繁重