У меня есть две таблицы: table1 и TABLE2Копировать столбец из другой таблицы с 'где'
Table1
id name value source
----------- ----------- ----- ------------
1 a 4 10
2 b 5 10
3 c 6 11
Table2
set text
----------- -----------
7 h
8 g
Я хочу, чтобы скопировать столбец 'значение' для Таблица 2 из Таблицы 1, where table1.source = 10
set text value
----------- ----------- ---------
7 h 4
8 g 5
Я попытался это:
ALTER TABLE Table2 ADD value INT NOT NULL DEFAULT 0
UPDATE tb2
SET tb1.value = tb2.value
from Table2 tb2
JOIN Table1 tb1
ON tb1.source=10
он дал мне это:
id name value
----------- ----------- ---------
7 h 4
8 g 4
Это обновление строк TABLE2 только первый source
значение из Table1.
Что я делаю неправильно? Спасибо заранее!
@GordonLinoff У меня есть Microsoft SQL, поэтому он не вызывает никаких ошибок. – Wafae
. , Отметил. При задании вопросов, пожалуйста, отметьте соответствующим образом. –
У вас недостаточно информации в двух таблицах для их объединения, так что 'set' 7 относится к 'value' 4 и 8 => 5. Вот почему вы в конечном итоге оба установлены на 4. Вам нужно кричать SQL-движок, как «подключить» строки, так как в таблице нет подразумеваемого порядка. – Tony