У меня есть таблица, которая выглядит примерно такОбновление строки с данными из другой строки в той же таблице
ID | NAME | VALUE |
----------------------------
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | |
4 | Test | |
1 | Test3 | VALUE3 |
Я ищу способ обновления «test2» Значения и «Test» с данными из других строк в столбце «VALUE» с тем же «NAME» (идентификатор здесь не уникален, составной ключ ID и NAME делает строку уникальной). Например, на выходе я ищу это:
ID | NAME | VALUE |
----------------------------
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | VALUE2 |
4 | Test | VALUE1 |
1 | Test3 | VALUE3 |
Если бы это было в другой таблице я бы хорошо, но я в недоумении относительно того, как я могу ссылаться на разные строки в пределах тока таблица с тем же значением NAME.
Обновление
После изменения Manji запроса ниже запрос я использовал для рабочего раствора. Спасибо всем!
UPDATE data_table dt1, data_table dt2
SET dt1.VALUE = dt2.VALUE
WHERE dt1.NAME = dt2.NAME AND dt1.VALUE = '' AND dt2.VALUE != ''
Что-то нуб, но я уверен, что это может быть сделано с использованием временных таблиц. Выберите имена, где значение равно null в таблице temp, затем заполните значения, а затем заполните эти значения обратно в исходную таблицу, где совпадает имя. – bdares
Не могли бы вы уточнить, как они берут данные из других строк? Из примера видно, что вы хотите, чтобы все те, у кого с тем же именем, было одинаковое значение VALUE, это правильно? Здесь имеет значение идентификатор? –
@Gustav, я нашел решение (см. Ниже), но да, намерение состоит в том, чтобы те же столбцы одного и того же NAME имели одинаковое значение VALUE. ID не имеет значения – slick