错误(1093):您无法在FROM子句中更新目标表以进行更新 [英] Error (1093):You cant update target table for update in FROM Clause
本文介绍了错误(1093):您无法在FROM子句中更新目标表以进行更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我已获得正确答案的选择语句:
select s_billing_cycle.Billing_cycle from s_billing_cycle
join o_daily_lcsgeneration_copy on o_daily_lcsgeneration_copy.Location=s_billing_cycle.Location where o_daily_lcsgeneration_copy.Date between s_billing_cycle.From_Date and s_billing_cycle.To_Date
在将同一查询更新到另一个表时,我无法使用update query get来做到这一点: 您无法在FROM子句中更新目标表"o_daily_lcsgeneration_copy"以进行更新 我使用的查询是:
while updating the same query into another table i couldnt do that using update query getting : You cant update target table "o_daily_lcsgeneration_copy" for update in FROM Clause the query i have used is :
update o_daily_lcsgeneration_copy set o_daily_lcsgeneration_copy.Billing_cycle = (select s_billing_cycle.Billing_cycle from s_billing_cycle join o_daily_lcsgeneration_copy on o_daily_lcsgeneration_copy.Location=s_billing_cycle.Location where o_daily_lcsgeneration_copy.Date between s_billing_cycle.From_Date and s_billing_cycle.To_Date)
救救我!
推荐答案
将其包装在子查询中(因此创建临时表)
wrap it in a subquery (thus creating temporary table)
UPDATE o_daily_lcsgeneration_copy
SET o_daily_lcsgeneration_copy.Billing_cycle =
(
SELECT Billing_cycle
FROM
(
SELECT s_billing_cycle.Billing_cycle
FROM s_billing_cycle
INNER JOIN o_daily_lcsgeneration_copy
ON o_daily_lcsgeneration_copy.Location = s_billing_cycle.Location
WHERE o_daily_lcsgeneration_copy.DATE BETWEEN s_billing_cycle.From_Date
AND s_billing_cycle.To_Date
) s
)
或JOIN
表
UPDATE o_daily_lcsgeneration_copy a
INNER JOIN s_billing_cycle b
ON a.Location = b.Location
SET a.Billing_cycle = b.Billing_cycle
WHERE a.DATE BETWEEN b.From_Date AND b.To_Date
这篇关于错误(1093):您无法在FROM子句中更新目标表以进行更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文