Вы можете сделать обновление, установить, как показано ниже.
update
Plants
set
Colour = PLN.Colour
from
Plants as P
join Plant_Latin_Names as PLN
on P.Plants_Hystory = PLN.Name
Теперь я не знаю, как выглядят ваши таблицы, так что вот мое полное тестирование и результаты.
create table #TempPlantNames
(
Name varchar(50) not null,
Color varchar(50) not null
)
insert into
#TempPlantNames
values
('Anthemis punctata', 'White'),
('Anthemis punctato', 'Black')
create table #TempPlants
(
Hystory varchar(50) not null,
Species varchar(50) not null,
Colour varchar(50) not null
)
insert into #TempPlants
values
('Anthemis punctata', 'Flower', 'unknown'),
('Anthemis punctato', 'Flower', 'unknown')
select
*
from
#TempPlants
update
#TempPlants
set
[Colour] = tPN.Color
from
#TempPlantNames as tPN
join #TempPlants as tP
on tPN.Name = tP.Hystory
select
*
from
#TempPlants
drop table #TempPlantNames
drop table #TempPlants
До
Hystory Species Colour
Anthemis punctata Flower unknown
Anthemis punctato Flower unknown
После
Hystory Species Colour
Anthemis punctata Flower White
Anthemis punctato Flower Black
Обновление
Если нет прямой связи между Plants и Plant_Latin_Names, вы можетеиспользуйте CHARINDEX для сопоставления таблиц (ниже), но если между двумя таблицами нет совпадения 1: 1 (несколько латинских названий применяются к одному растению или наоборот), у вас проблемы. Я бы проверил это много, прежде чем использовать его, чтобы убедиться, что вы не испортили некоторые данные. Может быть, вы можете добавить еще одно сравнение между двумя другими столбцами этих таблиц.
update
#TempPlants
set
[Colour] = tPN.Color
from
#TempPlantNames as tPN
join #TempPlants as tP
on charindex(tP.Hystory, tPN.Name) > 0