下面的代码给了我一个含糊不清的错误:

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/

10-12 05:00