sql - 查找连接表中缺失的值,纠正 SQL Server 2008

标签 sql t-sql

我正在处理两个表,patentTbl,它由一个名为 PatientID 的 PK 和一个名为 icdJxn 的连接表组成。设置以下查询是为了查找 patentTbl 中存在的 patentID 值,而不是 icdjxn 中存在的值。

select patienttbl.patientid, icdjxn.patientID as [nulls?]
from patientTbl left outer join icdjxn on patientTbl.patientID = icdjxn.patientID
where (icdjxn.patientID is null)

我很确定这给了我 patentTbl.patentID 中的值,而 icdjxn.patentID 中不存在这些值。有没有办法插入此查询,这样我就不会遇到任何 PK/FK 问题?

最佳答案

如果您使用的是 SQL Server 2008 或更高版本,则合并即可完成这项工作。

merge icdjxn as S
using patientTbl as T
on S.patientID = T.patientID
when not matched then
  insert (patientID) values (patientID);

关于sql - 查找连接表中缺失的值,纠正 SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10621244/

相关文章:

c# - 无法从存储过程中连接的其中一个表中检索列值?

sql - MAX 与 Top 1 - 哪个更好?

sql - 将钱存储在小数列中 - 什么精度和比例?

mysql - 可以在表中检查是否有属性位于另一个表的列中吗?

sql - 插入参数值和 JSON 字符串值

SQL DATEDIFF 如果数字为正则添加加号

SQL 拆分函数和排序问题?

sql-server - 在 SQL 中导入或转换使用时区数据扩展的 ISO 8601 日期

sql - 在 SQL Server 中创建索引时收到警告消息

t-sql - 条件/可选 where 语句