子查询中比较变量的MySQL子查询错误

时间:2016-06-21 17:16:53

标签: mysql

我已经尝试了几种方法在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)

正确的语法是什么?

1 个答案:

答案 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)