c# - 比较(JOIN)表并获取新记录

标签 c# .net sqlite datatable compare

我在这里遇到麻烦..可以说我有两个表,记录之间唯一不同的是它们的条形码。我正在使用此代码:

INSERT INTO rez1(barcode,No_,lik_pagr,inventkiekis,Vidurkis,skirias)
SELECT t2.barcode, t2.No_, t1.lik_pagr, t2.lik_pagr, ROUND(t2.lik_pagr - t1.lik_pagr,3) AS   'Vidurkis', CASE WHEN (t1.lik_pagr - t2.lik_pagr)<>0 THEN 1 
ELSE 0 
END
FROM likuciai AS t1
INNER JOIN pirmoji AS t2 
ON t1.barcode = t2.barcode;


我这里的问题是-它只选择两个表中都存在的记录(在条形码上),但我又如何获得条形码不等于表t1的记录?
原因t2始终是用户更新的表,而t1是旧表,我必须显示和对那些记录应用相同的算法。

最佳答案

您需要使用LEFT JOIN。只需将“ INNER”替换为“ LEFT”。这将从t1获取所有记录,并为t2值返回NULL,其中t1.barcode在t2中没有匹配的条形码。

关于c# - 比较(JOIN)表并获取新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590653/

相关文章:

java - Java 和 C++ 之间的 IPC

c# - mvvmcross 的 AOT 问题

c# - 读取和写入内存地址以验证不安全代码中的内存分配

c# - 有没有办法让 _ 在没有 Alt 键的情况下出现在热键上?

c# - 构建 C# .NET 客户端-服务器聊天应用程序的最佳方式是什么?

database - 在大型应用程序中使用 Qt 数据库

c# - 如何让 C# 文本框自动完成以根据包含而不是开头提出建议?

c# - 在 inline-if 中返回 ulong

.net - *tag* 属性在 C# 中有什么用

c++ - 组织 sqlite3 C/C++ 准备语句(避免全局代码困惑)