gpt4 book ai didi

SQL : How to know if a set of values exist in database?

转载 作者:行者123 更新时间:2023-12-04 15:48:00 26 4
gpt4 key购买 nike

我必须将文件中的行导入数据库。我必须检查外键是否存在。这是我应该导入的行示例:

A   481 11/23/1981  12  77000   DESCRIPTION_1     $5,098
A 482 11/23/1981 15 77000 DESCRIPTION_1 $5,098
A 482 11/23/1981 12 77000 DESCRIPTION_1 $5,098
A 481 11/23/1981 9 77000 DESCRIPTION_1 $5,098
A 481 11/23/1981 12 77000 DESCRIPTION_1 $5,098
A 481 11/23/1981 12 77000 DESCRIPTION_1 $5,098
A 481 11/23/1981 1 77000 DESCRIPTION_1 $5,098
A 481 11/23/1981 1 77000 DESCRIPTION_1 $5,098
A 481 11/23/1981 1 77000 DESCRIPTION_1 $5,098
A 481 11/23/1981 1 77000 DESCRIPTION_1 $5,098

这里的外键是 12、15、9、12、1。我想检查这些外键是否之一。在示例中,外键 12 不存在。最简单的方法是逐行测试:

SELECT COUNT(*) From TypeTable WHERE IdType = 12 -- 0
SELECT COUNT(*) From TypeTable WHERE IdType = 15 -- 1
SELECT COUNT(*) From TypeTable WHERE IdType = 9 -- 1
SELECT COUNT(*) From TypeTable WHERE IdType = 12 -- 1
SELECT COUNT(*) From TypeTable WHERE IdType = 1 -- 1

此方法的问题是每个不同的外键都有一个查询,我应该导入的文件有数千行(可能还有数千个外键)。

所以我想知道是否可以使用“SQL 的集合特性”在一个查询中进行检索,但我不知道该怎么做...

PS:在我的查询结果中,我需要知道数据库中不存在外键

问候,

弗洛里安

最佳答案

如果数据已经加载到暂存表中,那么您可以使用它

SELECT
*
FROM
myStagingTable ST
WHERE
NOT EXISTS (SELECT *
FROM TypeTable TT
WHERE ST.FKCol = TT.IdType)

要执行基于集合的操作,您需要一个包含所需 FK 值的表格。这可能是同一连接上的临时表,并通过扫描文件来填充。通过将 myStagingTable 更改为 #myFKTable

,相同的 SQL 可以在上面运行

关于SQL : How to know if a set of values exist in database?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6056950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com