2013-06-27 38 views
0

我不能得到這個工作,希望你能借我一把。更新沒有更新所有寄存器

我有一個PROCESSING表和10357行。 然後我有另一個名爲RESULTS的數據在PROCESSING中被替換。

RESULTS中的行是1262,我將在這兩個字段中使用這兩個字段進行更新。 RESULTS中的所有那些1262寄存器在PROCESSING中都有唯一的字段。 因此,在更新之後,應該在PROCESSING中更新1262行。對?

我構建了底部顯示的查詢。

運行查詢後我得到758 row(s) affected 我做錯了什麼?我想要更新所有那些1262行。

在此先感謝。

查詢

UPDATE 
    PROCESSING 
SET 
    FIELD1 = ATR.FIELD1, FIELD2 = ATR.FIELD2 
FROM (
    SELECT   
     FIELD1, 
     FIELD2, 
     UNIQUEFIELD 
FROM 
    RESULTS) AS ATR 
WHERE 
    PROCESSING.UNIQUEFIELD = ATR.UNIQUEFIELD 
+1

什麼是'SELECT COUNT(DISTINCT UNIQUEFIELD)FROM RESULTS'? –

+1

你確定兩個表中的唯一性數據嗎?這個查詢的輸出是什麼? (從「processing」p,「result」r選擇count(*),其中r.uniquefield = p.uniquefield) – 2013-06-27 16:01:09

+0

@MartinSmith對我很恥辱,就是這樣。我沒有檢查,因爲唯一的字段是表中的主要關鍵字。現在我知道結果並非如此。請回答這個問題,以便我可以將它標記爲正確的。非常感謝。 –

回答

1

如果UNIQUEFIELD實際上不是RESULTS獨特就會發生這種情況。

PROCESSING中的相應行只會更新一次,並且它將不被使用。