UPDATE SET中的子查询(sql server 2005)

itd*_*per 10 sql-server-2005 subquery

我有一个关于在Update语句中使用子查询的问题.我的例子:

UPDATE TRIPS
   SET locations = city + ', ' FROM (select Distinct city 
                                       from poi 
                                      where poi.trip_guid = trips.guid) 
Run Code Online (Sandbox Code Playgroud)

是否可以在子查询中引用主表值(trips.guid)?

当我尝试使用时,trips.guid我收到错误:

"多部分标识符"trips.guid"无法绑定."

"从poi中选择独特的城市"这一条款更多地归功于一个城市.

Adr*_*der 28

你可以尝试类似的东西

UPDATE  trips
SET     locations = t.city + ', ' + poi.city
FROM    trips t INNER JOIN
        (
            select Distinct city, trip_guid from poi
        ) poi ON t.trip_guid = poi.trip_guid
Run Code Online (Sandbox Code Playgroud)

  • +虽然我不同意格式化 - 会把`INNER JOIN`放到下一行;-) (5认同)

Mar*_*ith 8

另一个版本.

UPDATE trips
SET locations = trips.city + ', ' + poi.city
FROM trips INNER JOIN poi
ON poi.trip_guid = trips.guid
Run Code Online (Sandbox Code Playgroud)