我有3张桌子,A,B,C
表A,列:latlong,名称
表B,列:代码,名称
表C,列:latlong,代码
我想用表B,列名中的值更新表A,列名,如:
update A set A.name =
(select b.name
from B where code = c.code)
where a.latlong = c.latlong
请注意,所有列都不相关。
欣赏正确的方向。
尝试过使用内部联接的子查询,但没有好处。
答案 0 :(得分:2)
您可以使用update
使用join
执行此操作:
update a
set name = b.name
from a join
c
on c.latlong = a.latlong join
b
on b.code = c.code;
答案 1 :(得分:1)
尝试使用INNER JOIN进行更新
update A set
A.name = B.name
FROM A
INNER JOIN C on C.latlong = A.latlong
INNER JOIN B on B.code = C.code
答案 2 :(得分:0)
表A.Latlong = C.Latlong找不到正确的代码,缺少最后一个条件!
答案 3 :(得分:0)
您在问题中提到了以下内容:
我想用表B,列名
中的值更新表A,列名
但是我从您的查询中看到的是,实际上,您只需要表Name
的列B
的值,其值code
与表{{}相同1}},C
中的latlong
应该与A
中的latlong
相同,如果我没有弄错的话。
基于此,我可以说对表C
和B
的表C
需要SQL JOIN 操作。像这样:
A
无需创建 SUBQUERY