gpt4 book ai didi

mysql - 如何修复插入许多重复行的 INSERT INTO ... SELECT 代码?

转载 作者:搜寻专家 更新时间:2023-10-30 22:23:05 25 4
gpt4 key购买 nike

我的这段代码旨在将 39 行插入到 DWPROD 中,但它插入了 7056 行重复行。谁能帮我找出原因?

尝试了不同的代码,但还没有找到解决方案。

INSERT INTO DWPROD (DWPRODID, DWSOURCETABLE, DWSOURCEID, PRODNAME, PRODCATNAME, PRODMANUNAME, PRODSHIPNAME)
SELECT dwprodSeq.nextval, 'a2product', p.prodid, p.prodname, pc.categoryname, m.manuname, s.description
FROM a2product p, a2shipping s, a2manufacturer m, a2prodcategory pc
WHERE p.rowid NOT IN (SELECT source_rowid FROM A2ERROREVENT);

预期结果:插入 39 行实际结果:插入了 7056 行

最佳答案

这个:

FROM a2product p, a2shipping s, a2manufacturer m, a2prodcategory pc

返回 4 个表的笛卡尔积,即每个表中行数的乘积。
如果您想连接表,请使用适当的连接,例如:

FROM a2product p 
INNER JOIN a2shipping s ON ...........
INNER JOIN a2manufacturer m ON ............
INNER JOIN a2prodcategory pc ON ...............

ON 子句中的条件将限制行数,也许您会得到您想要的 39 行。

关于mysql - 如何修复插入许多重复行的 INSERT INTO ... SELECT 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58470778/

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