更新查询:错误:XX000:目标表必须是等联接谓词的一部分

时间:2018-11-22 16:44:12

标签: sql-update amazon-redshift

我将开始研究RedShift,因此我开始进行简单的查询。但是有一个简单的查询,它不起作用。

这是出现的错误,我不明白为什么。

错误:42P10:FROM中的子查询可能未引用相同查询级别的其他关系 查询:

      UPDATE table1 
  SET    income = nvl ( y.income, 0 )
  FROM   (
  SELECT date , income
                FROM     table2
                where date=201810
                GROUP BY date) y
  WHERE table1.date =   y.date  

谢谢

1 个答案:

答案 0 :(得分:0)

您需要在联接中指定要更新的表。例如:

UPDATE table1 
SET    income = nvl( y.income, 0 )
FROM table1,
     (SELECT   "date" , income
      FROM     table2
      WHERE    "date"=201810
      GROUP BY "date") y
WHERE table1."date" =   y."date"