的Sql子查询结果
问题描述:
我有3个表中,A,B,C的Sql子查询结果
表A,柱:经纬度,名称
表B,柱:代码,名称
表C,Columns:latlong,code
我想更新表A,列名与来自表B,列的值Na我喜欢:
update A set A.name =
(select b.name
from B where code = c.code)
where a.latlong = c.latlong
请注意,所有的列都没有关系。
希望得到正确的发展方向。
已经尝试了使用内部连接的子查询,但没有用。
答
你已经在你的问题中提到以下几点:
我想更新表A,从表B,列名
值列的名字,但我可以看到你查询实际上,您只需要表B
的列Name
的那些值,其具有与表C
中相同的值code
,并且您的latlong
在A
中应该与在012中的latlong
相同,如果我没记错的话。
基于这一点,我可以说你需要JOIN表用于和B
与C
表A
操作的SQL。事情是这样的:
UPDATE A SET A.name = B.Name
FROM A
JOIN C
ON C.latlong = A.latlong
JOIN B
ON B.code = C.code
无需创建一个SUBQUERY
答
您可以使用join
一个update
做到这一点:
update a
set name = b.name
from a join
c
on c.latlong = a.latlong join
b
on b.code = c.code;
答
与内部的try更新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
答
最后一个条件是缺少其中表A.Latlong = C.Latlong拿起正确的代码!