gpt4 book ai didi

sql - 对查询进行逆向工程

转载 作者:行者123 更新时间:2023-11-29 15:08:52 28 4
gpt4 key购买 nike

我有以下查询:

SELECT a.catalogID, d.catalogFileID, e.catalogFileID 
FROM catalog_topics a
LEFT JOIN catalog_files_join b ON a.catalogID = b.foreignKey
LEFT JOIN catalog_files_join c ON c.foreignKey = b.catalogFileID
LEFT JOIN catalog_files d ON d.catalogFileID = c.catalogFileID
LEFT JOIN catalog_files e ON e.catalogFileID = b.catalogFileID
WHERE b.fileTypeID = 'gvl401'
AND c.fileTypeID = 'gvl25'
AND a.topicID = 'top312'
ORDER BY a.sortOrder;

返回以下结果:

88  cfil923     cfil922
89 cfil925 cfil924
91 cfil929 cfil928
171 cfil107 cfil1074

我想编写一条插入语句来插入几条记录,这样如果我插入 2 条记录,上面的选择查询将返回 6 条记录。插入时,我将可以访问上面 where 子句中的所有内容,并且我将插入新的 d.catalogFileID 和 e.catalogFileID

最佳答案

您提供的查询从 3 个单独的表中提取数据。单个 SQL 插入查询只会将数据插入到单个表中。因此,为了将每条记录添加到系统中,您必须为每条记录执行至少 3 次插入。即

对于 10、cfil123、cfil456 的新记录,您需要:

INSERT INTO catalog_topics(catalogID, .. other required fields) VALUE(10, other required fields)
INSERT INTO catalog_files(catalogFileID, .. other required fields) VALUE('cfil123', other required fields)
INSERT INTO catalog_files_join(catalogFileID, .. other required fields) VALUE('cfil456', other required fields)

此外,您应该使用开始/结束事务对包装插入集,以便每条记录的所有插入都发生,或者都不发生。

关于sql - 对查询进行逆向工程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395208/

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