SQL IF 存在还是 WHERE 存在?
Posted
技术标签:
【中文标题】SQL IF 存在还是 WHERE 存在?【英文标题】:SQL IF Exists or WHERE Exists? 【发布时间】:2013-07-01 11:48:31 【问题描述】:创建一个 INSERT 查询以将数据从另一个表 (YPTImport) 插入现有表 (YPImport),问题是 YPTImport 中的一些数据已经存储在 YPImport 表中,因此如果我执行标准导入,我将创建重复项在 YPImport 表中。
我可以使用 3 个字段来比较数据以确保没有重复项,即 CNumber、位置和日期。所以如果 CNumber、Location 和 Date 匹配,那么我不想插入行。
我尝试使用 WHERE NOT EXISTS 并在 YPImport 表上使用 INNER JOIN 进行选择以仅选择重复项,但使用 WHERE NOT EXISTS 它返回 0 行。
SELECT item,
CNumber,
Location,
Date,
FROM YPTImport
WHERE NOT EXISTS (SELECT a.item,
a.CNumber,
a.Location,
a.Date,
FROM YPTImport a
INNER JOIN YPImport b
ON a.CNumber = b.CNumber
AND a.Location = b.Location
AND a.Date = b.Date)
有什么建议吗?
【问题讨论】:
【参考方案1】:使用这个查询:
SELECT
a.item,
a.CNumber,
a.Location,
a.Date
FROM YPTImport a
WHERE NOT EXISTS
(SELECT *
FROM YPImport b
WHERE a.CNumber = b.CNumber AND a.Location = b.Location AND a.Date= b.Date)
【讨论】:
以上是关于SQL IF 存在还是 WHERE 存在?的主要内容,如果未能解决你的问题,请参考以下文章
使用具有一个条件的 WHERE 子句运行 100 个 SQL 查询,还是使用具有 100 个条件的 WHERE 子句的一个查询更好?