2011-04-12 13 views
1

我試圖找到一個表中的所有字段爲空,並用另一個表中的數據填充它們。以下是我有:使用另一個表中的數據更新一個表中的多個空白字段

UPDATE t1 SET col1 = (
    SELECT col99 
    FROM t2 
    WHERE t1.product_ID = t2.product_ID 
) WHERE col1 IS NULL 

這完全適用於T1的COL1更新所有空白字段。但我也需要檢查其他領域的空白並更新它們。我不希望查詢更新所有字段,每當它們中的任何一個都爲空時,只是空白字段。我可以運行多個查詢,但我必須想象有一個更清潔,更好的方法。

感謝,

馬修

回答

1

嘗試:

UPDATE t1 
SET 
    col1 = COALESCE(col1, (SELECT col99 FROM t2 WHERE t1.product_ID = t2.product_ID)), 
    col2 = COALESCE(col2, (SELECT ...)), 
    -- etc. 

不應超過您最初的解決方案更好。它只是用一個UPDATE查詢而不是幾個來完成這項工作。

+0

這樣做。謝謝! – MatthewLee 2011-04-12 21:07:19

相關問題