我正在尝试运行如下所示的查询:
$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
函数是如何工作的......
我打算对表格做什么就像一个缓存,因为信息来自一些非常大的表格
答案 0 :(得分:0)
values语句引用insert
列列表中的值。你没有列出这些,但猜测是:
ON DUPLICATE KEY UPDATE
value1 = VALUES(value1),
value2 = VALUES(value2),
value3 = VALUES(value3),
value4 = VALUES(value4);