我正在从表中进行选择以填充要在我的永久表中更新的值。 MySQL抱怨'字段列表'中的“未知列'rtufu.FollowUpDays'”。我做错了什么?
UPDATE FollowUpTbl
SET
FollowUpDate = DATE_ADD(NOW(), INTERVAL (rtufu.FollowUpDays) DAY)
WHERE FollowUpID IN (SELECT FollowUpID FROM RowsToUpdateFollowUps rtufu);
RowsToUpdateFollowUps (Temporary)
+------------+--------------+
| FollowUpID | FollowUpDays |
+------------+--------------+
| 64417 | 90 |
| 45508 | 90 |
+------------+--------------+
FollowUpTbl
+--------------+------------+
| FollowUpDate | FollowUpID |
+--------------+------------+
| 0000-00-00 | 1 |
| 0000-00-00 | 2 |
+--------------+------------+
答案 0 :(得分:1)
试试这个:
update FollowUpTbl as f
inner join RowsToUpdateFollowUps as t using (FollowUpID)
set f.FollowUpDate = DATE_ADD(NOW(), interval t.FollowUpDays DAY);
答案 1 :(得分:0)
您的查询语法有点严重。试试这个。
UPDATE FollowUpTbl
SET
FollowUpDate = (
SELECT
DATE_ADD(NOW(), INTERVAL (rtufu.FollowUpDays) DAY)
FROM RowsToUpdateFollowUps rtufu
WHERE rtufu.FollowUpID = FollowUpTbl.FollowUpID
);
答案 2 :(得分:0)
rtufu在'inner'(又名嵌套)选择中定义。它在“外部”更新中没有可见性。
答案 3 :(得分:0)
内部联接可以与更新一起使用。
UPDATE FollowUpTbl f
INNER JOIN RowsToUpdateFollowUps rtufu ON rtufu.FollowUpID = f.FollowUpID
SET f.FollowUpDate = DATE_ADD(
NOW(),
INTERVAL (rtufu.FollowUpDays) DAY
);