Mysql 如何将一个查询结果作为输入插入另一个查询

Mysql 如何将一个查询结果作为输入插入另一个查询,mysql,node.js,Mysql,Node.js,当我尝试运行一个查询时,我得到500个内部错误。我想将query2结果作为数据插入query 查询: exports.create = async (req, res) => { try { const connection = await mysql.createConnection(config.mysql.credentials); var query2='select MAX(orders) from pdb_product'; const query = `ins

当我尝试运行一个查询时,我得到500个内部错误。我想将
query2
结果作为数据插入
query

查询:

exports.create = async (req, res) => {
  try {
  const connection = await mysql.createConnection(config.mysql.credentials);
  var query2='select MAX(orders) from pdb_product';
  const query = `insert into pdb_product (product_code, description, active, third_party, 
  orders) values ("${req.body.product_code}", "${req.body.description}", ${(req.body.active == 'on' ? 1 : 0)}, ${(req.body.third_party == 'on' ? 1 : 0)}, ${query2});`;
  await connection.query(query);
  res.redirect('/products');
  } catch (e) {
    utils.error500(req, res, e.message);
  }
  };
我得到的错误是:

您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第1行“从pdb_产品中选择最大订单”附近使用的正确语法

如何解决此问题?

在query2参数之前缺少一个“(”括号:

const query = `insert into pdb_product (product_code, description, active, third_party, 
  orders) 
values ("${req.body.product_code}", 
    "${req.body.description}", 
     ${(req.body.active == 'on' ? 1 : 0)}, 
     ${(req.body.third_party == 'on' ? 1 : 0)}, 
     (${query2}));`;

当我运行您的查询时,
您的SQL语法有错误;请检查与您的MySQL服务器版本相对应的手册,以了解在第1行的“”附近使用的正确语法。
error抱歉,我添加了换行符以使答案中的SQL更具可读性-您应该删除它们。我添加了它们,但没有换行符。但是您的查询不正确。如果我们把这样的
放在
查询2
之前,如何
在值括号关闭之后?我的错误,我错过了结束括号。
${query2}
需要被
包围(
我也用过。但它不是工作伙伴(.
您不能在FROM子句中指定要更新的目标表“pdb_product”
这是否回答了您的问题?