c# - 如何删除只有两列共有的两个不同表的重复值?
问题描述
我有两个表,只有两列共有,我想相互比较并删除公共列的重复项
例如表 A 有 4 列,表 B 有 6 列,我想获取表 A 的记录,但没有行匹配的记录(当两个公共列的值匹配时)
例如,在表 A 中常见的两列中有 code=x , Nature =y ,在表 B 中也有 code=x , Nature =y ,所以当我获取表 A 记录时应该删除这条记录......我正在使用 Visual Studio C#,但我不知道要执行什么查询来获取这些记录,请提供任何帮助
解决方案
一些方法(我在这里假设 SQL Server,因为您使用的是 VS 和 C#):
SELECT
a.Code,
a.Nature
FROM dbo.TableA a
EXCEPT
SELECT
b.Code,
b.Nature
FROM dbo.TableB b
或者,您可以在结果为 NULL 的情况下 LEFT JOIN TableB:
SELECT a.*
FROM dbo.TableA a
LEFT JOIN dbo.TableB b
ON b.Code = a.Code
AND b.Nature = a.Nature
WHERE b.Code IS NULL;
推荐阅读
- javascript - 如何访问在另一个组件中使用 Link to 发送的状态
- asp.net-mvc - .NET Core 反射 - 如何在 ASP.NET Core 3 Razor 视图中查找属性的引用?
- maven - Azure DevOps Pipeline - Maven 仅在不存在时部署发布
- locust - 控制locust进程的退出代码
- php - 为什么要创建多个 PHP 会话?
- android - 布局中的Android绘图分隔线
- html - Chrome 上的本地 HTML 文件安全性
- c - 获取 OpenCL 设备 ID 时,clGetDeviceIDs() 函数会导致堆内存损坏
- php - 在“?”附近使用正确的语法 订购方式
- sql - 使用 LDAP 和 SQL 连接到 Teradata DB