0

我正在尝试运行如下所示的查询:

$DB->query("INSERT INTO table (
  SELECT s.value1, s.value2, s.value3, t.value1, u.value1, u.value2, u.value3, u.value4
  FROM aTable AS s
  LEFT JOIN aTable2 AS u ON u.uID = s.uid 
  WHERE u.spent < ". $needed ."
  GROUP BY s.uid, s.fid ) 
  ON DUPLICATE KEY UPDATE
  value1 = VALUES(u.value1), 
  value2 = VALUES(u.value2), 
  value3 = VALUES(u.value3), 
  value4 = VALUES(u.value4);
");

但是,这会返回错误:

“字段列表”中的未知列“u.value1”

请注意,这是我第一次在这个级别使用 MySQL,所以我不知道这个DUPLICATE KEY UPDATE函数是如何工作的......

我打算对表做的就像一个缓存,因为信息是从一些非常大的表中获取的

4

1 回答 1

0

values 语句引用列列表中的值insert。您没有列出这些,但猜测是:

  ON DUPLICATE KEY UPDATE
  value1 = VALUES(value1), 
  value2 = VALUES(value2), 
  value3 = VALUES(value3), 
  value4 = VALUES(value4);
于 2013-08-17T13:55:24.690 回答