【发布时间】:2018-04-26 07:48:12
【问题描述】:
我必须将记录从一个系统迁移到另一个系统。有4张不同的桌子。第一个表包含有关每个用户的所有信息。每行都有唯一的 ID,即主键。所以我需要从表一中获取主键并在其他 3 个表中找到匹配的记录。这些表有我们应该用来匹配用户的外键。这是一个例子:
SELECT *
FROM Users AS ur
WHERE EXISTS(
SELECT *
FROM TableA AS a
WHERE ur.ur_id = a.a_urid
)
//Maybe second option can be to use INNER JOIN
SELECT *
FROM Users AS ur
INNER JOIN TableA AS a
ON ur.ur_id = a.a_urid
INNER JOIN TableB AS b
ON ur.ur_id = b.b_urid
INNER JOIN TableC AS c
ON ur.ur_id = c.c_urid
上面的查询将只返回用户和表 A 的匹配记录。我想知道我是否可以匹配用户表中在表 A、B 和 C 中具有匹配用户 ID 的所有记录。如何在 SQL Server 中实现2008 年?或者我需要单独添加/导入每个表?如果有人可以帮助完成这项任务,请告诉我。谢谢!
【问题讨论】:
-
内连接每个表...似乎合乎逻辑
-
您拥有的
inner-join标签看起来很有希望。
标签: sql sql-server-2008 inner-join exists