Обновлены строки в MYSQL из строк табличного представления - PullRequest
0 голосов
/ 08 февраля 2012

Я в тупике.

Допустим, у меня есть таблица '1' с тремя столбцами: 'A', 'B', 'C'. Столбец «С» имеет значения NULL. В другой таблице «2» есть столбцы «A» (соответствует таблице «1») и «C», где «C» завершено.

Как я могу объединить значения из таблицы '2' в таблицу '1' в MYSQL?

Я пытался, и ругался вверх и вниз, это должно работать:

UPDATE 1  
SET 1.C = 2.C  
FROM 1 JOIN 2  
ON 1.A = 2.A  
WHERE 1.C IS NULL;

А подсказки? намеки? идеи?

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Это работает:

update t1, t2
set t1.c = t2.c
where t1.a = t2.a and t1.c is null;

Ответ обновлен в соответствии с измененными требованиями. T2 может быть представлением, поэтому объединение может быть лучшей идеей. Я не очень разбираюсь в представлениях, поэтому я просто перешел из строки ОБНОВЛЕНИЕ t2 ... но я не уверен, что это что-то меняет.

update t1
join t2 on t1.a = t2.a
set t1.c = t2.c
where t1.c is null;
0 голосов
/ 08 февраля 2012

Ваш запрос правильный, но попробуйте использовать Alias:

UPDATE  `tableNameA` `a`  
SET     `a`.`C` = `b`.`C`  
FROM    `a` INNER JOIN `tableNameB` `b` ON `a`.`A` = `b`.`A`  
WHERE   `a`.`C` IS NULL;

Я добавил backtick на случай, если некоторые из ваших полей содержат ЗАБРОНИРОВАННОЕ СЛОВО

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...