使用其他两个表更新一个表,如Join condition



我有三个表,如下

表H

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

表C

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 Svalue列的数据更新table H

我把查询写在下面

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);

但它不起作用。

我认为子查询中SC上的联接使用了错误的列:

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);

相关内容

最新更新