我有一個表,它看起來像這樣更新一行在同一個表的另一行數據
ID | NAME | VALUE |
----------------------------
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | |
4 | Test | |
1 | Test3 | VALUE3 |
我正在尋找一種方式來更新值「的Test2」和「測試」與'VALUE'列中其他行的數據具有相同的'NAME'(這裏的ID不是唯一的,ID和NAME的複合鍵使行成爲唯一的)。例如,我在尋找的輸出是:
ID | NAME | VALUE |
----------------------------
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | VALUE2 |
4 | Test | VALUE1 |
1 | Test3 | VALUE3 |
如果是在另一張表,我會很好,但我不知所措我,我怎麼可以在當前中引用不同的行表具有相同的NAME值。
更新
修改曼吉查詢後,下面是我用於工作解決方案查詢。謝謝大家!
UPDATE data_table dt1, data_table dt2
SET dt1.VALUE = dt2.VALUE
WHERE dt1.NAME = dt2.NAME AND dt1.VALUE = '' AND dt2.VALUE != ''
東西小白,但我敢肯定,這可以使用臨時表來完成。將值爲空的名稱選擇到臨時表中,然後填入值,然後將這些值填回到名稱匹配的原始表中。 – bdares 2011-04-07 00:23:04
您可以更具體地瞭解他們如何從其他行獲取數據嗎?從這個例子中,看起來好像你想給所有具有相同NAME的人都有相同的值,這是正確的嗎?身份證在這裏有重要嗎? – 2011-04-07 00:24:00
@Gustav,我找到了一個解決方案(見下文),但是,是的,目的是讓同一個名稱的相同列具有相同的值。 ID是不相關的 – slick 2011-04-10 00:45:58