加入重复不按预期工作

时间:2013-08-17 13:29:35

标签: mysql

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

$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函数是如何工作的......

我打算对表格做什么就像一个缓存,因为信息来自一些非常大的表格

1 个答案:

答案 0 :(得分:0)

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

  ON DUPLICATE KEY UPDATE
  value1 = VALUES(value1), 
  value2 = VALUES(value2), 
  value3 = VALUES(value3), 
  value4 = VALUES(value4);