【发布时间】:2015-05-05 19:53:15
【问题描述】:
现在我真的尝试在 3 小时后在 Google 中查找任何内容。 我有两个要相互连接的 SQL 表。
Table_LN 是一个包含唯一电子邮件属性的用户表
Table_AD 是一个具有 Active Directory 电子邮件属性和用户主体名称的表(我的问题,电子邮件地址不等于 UPN,也不是唯一的)
我的目标是使用来自 Table_AD 的 UPN 扩展 Table_LN 中的行。如果Table_AD 中有多行具有相同的电子邮件地址,则它应该采用将找到的第一行。我还需要一个国家过滤器。
我尝试的是以下代码:
SELECT
[FirstName],
[LastName],
[EMailAddress],
[UPN],
[OfficeCountry]
FROM [Table_LN]
RIGHT JOIN [Table_AD] ON [Table_LN].[EMailAddress] = [Table_AD].[EMail]
WHERE
OfficeCountry = 'Malaysia'
我现在的问题是,这个声明为每个额外的电子邮件地址创建了更多行。这意味着它会在目录中增加我的用户数。
你能帮我吗?或者有人知道有人问这个话题吗?
谢谢
【问题讨论】:
-
在加入之前删除
RIGHT? -
使用什么候选键来选择外表中的行?在内表?除非您执行 1 到 0 或 1 匹配,否则您将始终增加行集大小。
-
您希望得到什么结果?只返回一封特定的电子邮件,将它们连接成一列?
标签: sql-server select join