2012-11-06 60 views
2

這就是我已經得到了正確的答案select語句:錯誤(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 

同時更新相同的查詢到另一個表我不可能做,使用更新查詢得到: 您FROM子句 查詢我用着更新目標表中「o_daily_lcsgeneration_copy」的更新是:

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) 

幫幫我!!!

回答

1

子查詢包裹它(從而創建臨時表

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 
+0

Thanku這麼多約翰它是由連接表工作正常 –

+0

@RanjitKumar你歡迎:D –

相關問題