我已经尝试了几种方法在select子句中实现子查询。基本上我只想在一个表中查找日期并将其存储在另一个表中。在此示例中,我收到错误"未知列' areckey'在where子句"
insert into cmeFillCompaction set
reckey=2421,
areckey=3170,
WEBDATE=(select pickupdate from cmeSchedule s where s.reckey=areckey)
on duplicate key update
reckey=2421,
areckey=3170,
WEBDATE=(select pickupdate from cmeSchedule s where s.reckey=areckey)
正确的语法是什么?
答案 0 :(得分:0)
您不能使用这样的相关子查询,因为该行尚不存在以进行比较。使用INSERT...SELECT
。并且您不需要重复ON DUPLICATE KEY
子句中的值,如果VALUES(columnname)
成功,您可以使用INSERT
来获取分配给该列的值。
INSERT INTO cmeFillCompaction (reckey, areckey, webdate)
SELECT reckey, 3170, pickupdate
FROM cmeSchedule
WHERE reckey = 2421
ON DUPLICATE KEY UPDATE webdate = VALUES(webdate)