下面的代码给了我一个含糊不清的错误:
INSERT INTO database VALUES * FROM dbtemp WHERE dbtemp.number NOT IN (SELECT dbtemp.number FROM dbtemp INNER JOIN database ON dbtemp.number = database.number AND dbtemp.price = database.price);
我已经成功地在这些数据库上运行了其他查询,所以我知道这只是语句语法的问题。但对于我的生活,我看不出有什么不对劲。如有任何建议/建议,将不胜感激。
谢谢!
最佳答案
这应该是一个INSERT INTO SELECT
语句吗?你的INSERT INTO database VALUES *
语法有问题…
INSERT INTO database
SELECT * FROM dbtemp
WHERE dbtemp.number NOT IN (
SELECT dbtemp.number FROM dbtemp INNER JOIN database ON dbtemp.number = database.number AND dbtemp.price = database.price
);
在执行这样的
INSERT SELECT
操作时,建议使用显式列名,而不是SELECT *
,以确保它们以正确的顺序返回:INSERT INTO database
SELECT
col1,
col2,
col3
FROM dbtemp
WHERE dbtemp.number NOT IN (
SELECT dbtemp.number FROM dbtemp INNER JOIN database ON dbtemp.number = database.number AND dbtemp.price = database.price
);
关于mysql - MySQL查询语法有问题吗?尝试从INNER JOIN插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9401629/