我有两个桌子 具有两列Col1和Col2的TABLE1
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)
此外,我尝试了左联接和提取,但没有得到正确的解决方案。 有人可以为上述查询提供任何解决方案。预先感谢。
答案 0 :(得分:1)
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造成打击
答案 1 :(得分:0)
尝试一下:
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)
或
select col1,col2 from @tb1
where col1 + ' ' + cast(col2 as varchar) not in (select col1 + ' ' + cast(col2 as varchar) from @tb2)
输出
A 2
A 3
B 1
C 1
C 2
C 3
答案 2 :(得分:0)
您可以使用Not Exists
忽略另一个表中存在的相同数据。
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)