Sql 从具有超集值的表中排除子集
表1有员工ID和代码,其中每个员工都有超集代码和子集代码Sql 从具有超集值的表中排除子集,sql,sql-server,Sql,Sql Server,表1有员工ID和代码,其中每个员工都有超集代码和子集代码 +-------------+------+ |员工ID |代码| +-------------+------+ | 111 | 18 | | 111 | 19 | | 111 | 20 | | 111 | 21 | | 222 | 40 | | 222 | 41 | | 222 | 42 | +--
+-------------+------+
|员工ID |代码|
+-------------+------+
| 111 | 18 |
| 111 | 19 |
| 111 | 20 |
| 111 | 21 |
| 222 | 40 |
| 222 | 41 |
| 222 | 42 |
+-------------+------+
表2有超集代码和子集代码
+---------------+-------------+
|超集码|子集码|
+---------------+-------------+
| 18 | 19 |
| 18 | 20 |
| 18 | 21 |
| 40 | 41 |
| 40 | 42 |
+---------------+-------------+
我想输出员工id和超集代码单独。
预期结果表:
+-------------+------+
|员工ID |代码|
+-------------+------+
| 111 | 18 |
| 222 | 40 |
+-------------+------+
如何使用sql查询导出此输出?我想您希望
存在
:
select t1.*
from table1 t1
where exists (select 1 from table2 t2 where t2.supersetcode = t1.code);
为了提高性能,您需要在
table2(supersetcode)
上建立索引,不要发布word文档的图像;将问题中的文本(数据)作为文本。最好提供DDL和DML语句,但是,如果没有,则采用表格格式文本
。#@Lakshmi,当您发布表格数据时,请将其格式化。例如,您尝试过什么吗???如果没有,那就开始工作吧。谢谢,这很有效!我在一个不存在的地方工作,花了太多时间time@Lakshmi如果Gordon的回答解决了您的问题,请接受。