我有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
請注意,所有的列都沒有關係。
希望得到正確的發展方向。
已經嘗試了使用內部連接的子查詢,但沒有用。
我有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拿起正確的代碼!