比较两个数据表并选择第二个表中不存在的行

2024-04-12

我有两个数据表,我想从第一个数据表中选择第二个数据表中不存在的行

例如:



Table A
  id   column
  1     data1
  2     data2
  3     data3
  4     data4

Table B
  id   column
  1     data10
  3     data30
  

我希望结果是:



Table C
  id    column
  2      data2
  4      data4
  

您可以使用 Linq,尤其是Enumerable.Except有助于查找 TableAU 中不在表中的 id:

var idsNotInB = TableA.AsEnumerable().Select(r => r.Field<int>("id"))
        .Except(TableB.AsEnumerable().Select(r => r.Field<int>("id")));
DataTable TableC = (from row in TableA.AsEnumerable()
                   join id in idsNotInB 
                   on row.Field<int>("id") equals id
                   select row).CopyToDataTable();

您还可以使用Where但效率会降低:

DataTable TableC = TableA.AsEnumerable()
    .Where(ra =>  !TableB.AsEnumerable()
                        .Any(rb => rb.Field<int>("id") == ra.Field<int>("id")))
    .CopyToDataTable();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

比较两个数据表并选择第二个表中不存在的行 的相关文章

随机推荐

  • 如何禁用文本块?

    我希望我的 TextBlock 看起来已禁用 变灰 但是当我设置时IsEnabled属性为 false 没有任何反应 它保持黑色
  • 使用 Pickle 保存 Numpy 数组

    我有一个 Numpy 数组 我想保存它 130 000 x 3 我想使用 Pickle 保存它 代码如下 但是 我在 pkl load 行不断收到错误 EOFError Ran out of input 或 UnsupportedOpera
  • 如何在下拉框下方的Select2中显示选中的标签?

    我正在使用带有标签的 Select2 版本 4 并且希望将所选选项显示在输入字段下方 所以而不是 而是有 这可能吗 如果可能的话我该如何实现 编辑 代码是
  • W.r.t.从 Gradle 将选项传递给 JPAAnnotationProcessor

    我正在使用 Gradle 版本 2 14 我做了一些更改build gradle排除包JPAAnnotationProcessor如中提到的question https stackoverflow com questions 2591866
  • 使图标在 React Native 中可供选择,而不是通过 props 发送它们

    我有 svg 图标 这些是 a a b b
  • 如何优化递归算法使其不重复?

    找到后difflib SequenceMatcher由于 Python 标准库中的 class 不适合我的需求 因此编写了一个通用的 diff 模块来解决问题空间 经过几个月的时间更多地思考它在做什么之后 递归算法似乎通过按单独的 搜索线程
  • 使用 pyttsx3 模块向语句添加语音时出现“VoiceAge”错误

    我基本上是在聊天机器人的帮助下开发一个聊天机器人 现在为了向机器人给出的响应添加语音 我使用了 pyttsx3 模块 但最终结果是这样的 我什至尝试将这个模块实现为其他声音 因为它显示有 3 个声音可用 engine pp init voi
  • 将 numpy.array 对象转换为 PIL 图像对象

    我一直在尝试使用 Image fromarray 将 numpy 数组转换为 PIL 图像 但它显示以下错误 回溯 最近一次调用最后一次 文件 C Users Shri1008 Saurav Das AppData Local Progra
  • 自动启用从 Internet 访问端口 4900 的方法

    我正在编写一个在端口 4900 上运行的自定义 p2p 程序 在某些情况下 当用户位于路由器后面时 无法从互联网访问该端口 是否有一种自动方式可以从互联网访问该端口 我不太确定其他 p2p 应用程序是如何工作的 有人能解释一下吗 简而言之
  • C++ 类,其基类和循环包含 [重复]

    这个问题在这里已经有答案了 文件 1 foo h ifndef FOO H define FOO H include baseclass h include bar h class Bar class Foo public baseclas
  • 如何让 div 在滚动到屏幕顶部后粘在屏幕顶部?

    我想创建一个 div 它位于内容块下方 但是一旦页面滚动到足以接触其顶部边界 它就会固定在适当的位置并随页面滚动 您可以简单地使用 css 将元素定位为fixed https developer mozilla org en US docs
  • 在 mongoDB 中的同一 API 中并行查询同一文档

    我有一个用打字稿编写的 API 我尝试使用 Promise allsettled 对同一文档运行并行查询 但它的性能更差 我猜它们是按顺序运行的 有没有办法在 mongoDB 的同一连接中对同一文档执行并行查询 这是代码 console t
  • 绑定值未传递给 WPF 中的用户控件

    我仔细观察了很久 却被困住了 我试图通过 Window 的绑定将参数从 Window 传递到 UserControl1 在 MainWindow 中 UserControl1 被包含两次 一次通过 MyValue 上的绑定传递参数 MyCu
  • 如何使用 jpa 规范添加不同的属性进行查询

    我正在使用 jhipster 标准和 jpa 规范来实现研究端点 嗯 它正在工作 但请继续向我发送副本 此型号有前置 public class Prestation extends AbstractAuditingEntity implem
  • 删除字符串开头和结尾的换行符

    我注意到 trim 不会从字符串的开头和结尾删除换行符 因此我尝试使用以下正则表达式来完成此操作 return str replace s n s n g 这并没有删除新的线条 我担心我已经超出了我的能力范围 EDIT字符串是用 ejs 生
  • 使用 jQuery 实现打字机效果

    编辑 我并没有真正问我原来问题中应该问的所有问题 为了帮助寻找类似答案的人更容易找到答案 问题最终是这样的 如何制作带有闪烁光标的打字机效果 该光标在语句末尾暂停 擦除语句并写入新语句 看看下面 Yoshi 的回答 它正是这样做的 demo
  • Android jetpack 导航组件对话框结果

    到目前为止 我仅使用导航组件即可成功导航到对话框并返回 问题是 我必须在对话框中执行一些操作并将结果返回到调用对话框的片段 一种方法是使用共享视图模型 但为此我必须使用 of activity 这会让我的应用程序有一个单例占用内存 即使我不
  • 如何在图像视图上画一个圆圈

    如何在用户触摸图像的位置在图像上绘制一个圆圈 图像是使用imageview设置的 我在网上找到了一种解决方案 它在新画布上创建图像位图并在其上绘制圆圈 解决方案位于http joerg richter fuyosoft com p 120
  • 将您的 Web 应用程序发布到野外

    假设您已经编写了下一个社交网络现象 或任何其他网络应用程序 您已选择 Java Tomcat Apache 和 Oracle 或您喜欢的任何设置 您知道希望将其发布到网络上并让人们注册并开始使用它 对于您在家中编写并希望将其传播到野外的东西
  • 比较两个数据表并选择第二个表中不存在的行

    我有两个数据表 我想从第一个数据表中选择第二个数据表中不存在的行 例如 Table A id column 1 data1 2 data2 3 data3 4 data4 Table B id column 1 data10 3 data3