我正嘗試使用帶有子查詢的更新語句的內部聯接......請問您可以幫助我解決Sytax問題---還有,您如何使用SQL服務器中別名的AS子句? 以下是我想做的事:在更新語法中使用內部聯接和子查詢
Update Table1
inner join table2
set table1.value1 = (select table2.value1 where table1.value 1 ....)
什麼想法?
我正嘗試使用帶有子查詢的更新語句的內部聯接......請問您可以幫助我解決Sytax問題---還有,您如何使用SQL服務器中別名的AS子句? 以下是我想做的事:在更新語法中使用內部聯接和子查詢
Update Table1
inner join table2
set table1.value1 = (select table2.value1 where table1.value 1 ....)
什麼想法?
如果需要使用子查詢來執行更新,你可以這樣來做:
UPDATE t1
SET t1.value = t2.value
FROM Table1 t1
JOIN
(
SELECT id, value
FROM table2
) t2
ON t1.id = t2.id
一種方法是別名表:
update t1
set table1.value1 = t2.value1
from table1 as t1
join table2 as t2
on t1.id = t2.t1_id
如果您需要一個子查詢來確定table1.value1的值,那該怎麼辦? =(選擇??) – 2012-04-17 14:51:22
UPDATE Table1 t1
INNER JOIN (
SELECT id, value
FROM table2
) t2 USING(id)
SET t1.value = t2.value
我想你的意思是'SET t1.value',否則你會得到錯誤「多部分標識符」table1.value「無法綁定」 – 2012-04-17 15:24:26
@ConradFrix是的,這就是我的意思,我修好了它。感謝您指出。 – Taryn 2012-04-17 15:25:08