2017-02-20 3 views
1

У меня 2 таблицыОбновление каждой строки с различными значениями в улье

таблица1

key  comment 
1  null 
2  null 
3  null 
1  null 
1  null 
2  null 

таблица2

key  type 
1  1 
2  2 
3  3 

мне нужно

таблица1

key  comment 
1  1 
2  2 
3  3 
1  1 
1  1 
2  2 

Я пробовал это.

UPDATE table1 hist 
SET comment = (
    Select type 
    from table2 mta 
    WHERE hist.key = mta.key 
    ); 

Не работает. Кажется, подзапросы не поддерживаются. Осталось только левое соединение, но мне любопытно, возможно ли это без него.

Это операторы создания. SHOW CREATE TABLE

CREATE TABLE `db.evkuz`(
    `subs_key` string, 
    `mtr_comments` string) 
ROW FORMAT SERDE 
    'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
STORED AS INPUTFORMAT 
    'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' 

CREATE VIEW `db.RCR` AS 
Select `a`.`line`[64] as `SUBS_KEY` 
, `a`.`line`[63] as `TYPE` 
from(
    Select split(`rcr`.`line`, '\\|') as `LINE` 
    from `db`.`MAK_RCR` 
) `a` 

эти результаты describe table

evkuz

subs_key    string 
mtr_comments   string 

RCR

subs_key    string 
type     string 

это утверждение обновления

UPDATE t1 
SET t1.MTR_COMMENTS = t2.TYPE 
FROM db.evkuz t1 
inner join db.RCR t2 
on t1.SUBS_KEY = substr(t2.SUBS_KEY, 2); 

ответ

0

Попробуйте

update t1 
set t1.comment =t2.type 
from 
dbo.Table_1 t1 
inner join dbo.Table_2 t2 ON t2.keys = t1.keys 
+0

Я получаю 'FAILED: ParseException строка 2: '' 6 несовпадающего входа Ожидание = около 't1' в заявлении об обновлении' –

+0

@Eugene Cuz Проверить тип данных обоих столбцов – mangesh

+0

@Eugene Cuz Пришлите мне ваши обе скрипты таблицы – mangesh