我有三个表,如下
表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 S
中value
列的数据更新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);
但它不起作用。
我认为子查询中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);