У меня есть три таблицы, как показано ниже

ТАБЛИЦА H

H_ID   FLG
1    -
2    -
3    -
4    HERE
5    NO

ТАБЛИЦА С

C_ID  STS
1      1345
2      1345
3      1346
4      1346
5      1345
6      1348
7      1223

ТАБЛИЦА S

STS_ID    VALUE
1345       START
1346       END
1348       WILD
1223       MID
1111       ON-GOING
2345       THERE

Я хочу обновить table H данными из столбца value в table S

Я написал запрос, как показано ниже

UPDATE table H h
SET FLG = (SELECT s.VALUE 
           FROM table C c 
             JOIN table S s 
               ON s.STS_ID = c.C_ID      
           WHERE c.C_ID = h.H_ID)     
WHERE h.H_ID IN (1,2,3);

Но не работает.

0
Nvr 8 Окт 2020 в 15:05

1 ответ

Лучший ответ

Я думаю, что при объединении S и C в подзапросе используются неправильные столбцы:

UPDATE table H h
SET FLG = (SELECT s.VALUE
           FROM table C c JOIN
                table S s
                ON s.STS_ID = c.STS
           WHERE c.C_ID = h.H_ID
          )
WHERE h.H_ID IN (1, 2, 3);
1
Gordon Linoff 8 Окт 2020 в 12:07