通过连接3个表来更新SQL

时间:2010-12-10 14:51:49

标签: sql tsql inner-join

使用下表结构,我需要使用位置名称作为查找值,将行ID插入到批准的表中。我该怎么做呢?

我开始使用以下代码,但它没有做太多。在SQL连接上没那么好,所以非常感谢任何帮助。

UPDATE dbo.Approved 
SET dbo.Approved.Groupid=dbo.Lines.ID 
FROM dbo.Lines,dbo.Approved, dbo.Locations 
WHERE dbo.Approved.Location = dbo.Locations.Location_Name

已批准

ID (PK) | Incident             | Location     | GroupID
--------------------------------------------------------
1       | Theft of luggage     |Oxford Circus | Null
2       | Theft of bag         |Kings Cross   | Null

ID (PK) | Line_Name      | 
--------------------------
1       | Central        |
2       | Northern       |
3       | Circle         |

位置

ID (PK) | Location_Name  | LineID
---------------------------------
1       | Oxford Circus  |1
2       | Kings Cross    |2
3       | Victoria       |3

1 个答案:

答案 0 :(得分:2)

我建议你这样做:

UPDATE t1.Approved
SET t1.Groupid = t2.ID
FROM dbo.Approved t1
INNER JOIN dbo.Locations t2 ON t1.Location = t2.Location_Name

您不需要Lines表,因为您要插入的内容最后只是LineID而不是Line_Name。

希望它可以提供帮助,

相关问题