sql-server - 如何基于忽略表 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)
另外,我尝试了左连接和提取,但没有得到正确的解决方案。有人可以为上述查询提供任何解决方案。提前致谢。
解决方案
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 上没有受到任何影响
推荐阅读
- winforms - 如何修复 Visual Studio 2017 Windows 窗体的 DPI 缩放问题
- reactjs - 在反应路由器中通过 this.props.history.push('/xyz) 传递参数
- tiff - 从 TIFF Packbit 转换为 TIFF LZW
- sql - 数据透视表中的 SQL 分组
- angularjs - AngularJS 中的时间格式问题
- codenameone - 代号 一个 Javascript 端口:获取主机和端口
- asp.net-core - 连接到数据库时禁用 Windows 身份验证
- javascript - How to fill an AngularJS form loading data via XMLHttpRequest
- java - 打包 flink-1.5.2 时从源代码构建 Apache Flink 失败
- vb.net - 当水晶报表中的数据太长时,线条对象在页面底部延伸