我有三个表A,B和C.A和B连接外键A.category_id = B.id,A和C具有相同的行数 .
一个
id category_id value1 value2
1 null 'A' null
2 null 'B' null
3 null 'C' null
4 null 'D' null
乙
id category
1 0
2 1
C
id category
1 0
2 1
3 1
4 0
预期结果:
一个
id value
1 1
2 2
3 2
4 1
我想收到更新的A表,其中category_id将根据表C类别从表B中获取id .
我试过了
UPDATE A SET
A.category_id = (
select B.id from A
left JOIN C
ON A.id = C.id
left join B on B.category=C.category
)
WHERE A.id IN (SELECT C FROM C WHERE A.id = C.id);
但后来我收到ORA-01427单行子查询返回多行提示
1 回答
您缺少子查询中的关联子句:
要关联查询,通常在
where
条件中引用外部引用 . 您不要在from
子句中重复表引用 .请注意,外部连接是不必要的 . 如果没有匹配,则值为
NULL
.