【发布时间】:2013-11-21 02:17:34
【问题描述】:
使用 SQL Server 2012 Express
我有两张桌子,groupsmembers1 和 groupsmembers2。
两个表都包含四列:groupname、membername、memberaddress、ID。
表格中填充了来自 AD (1) 和 Domino (2) 的组和成员数据。
希望比较组名和成员地址(在两个表之间),以确定组和/或组成员在哪个目录中存在/不存在的位置。
两个表如下所示:
ID GroupName MemberName MemberAddress
4033 group1 membername1 memberaddress1
4034 group1 membername2 memberaddress2
4035 group1 membername3 memberaddress3
4036 group1 membername4 memberaddress4
4037 group2 membername22 memberaddress22
4038 group2 membername23 memberaddress23
4039 group2 membername24 memberaddress24
4040 group2 membername25 memberaddress25
我的困难是构建一个查询,该查询将向我显示来自两个表的每个组以及每个成员,即使一个表没有确切的条目。
我已经从我读过的与组合表格数据、连接表格等相关的大量帖子中尝试过这个(和变体)。
select a.GroupName, a.memberaddress, d.groupname, d.memberaddress
from [groupsmembers1] a
join [groupsmember2] d on a.groupname = d.GroupName
where a.groupname like '%somegroupname%'
上面的查询给了我这样的 49 行数据(当表 groupsmembers1 有 9 行而表 groupsmembers2 只有 7 行时 %somegroupname%:
groupname memberaddress groupname memberaddress
somegroupname memberaddress1 somegroupname memberaddress1
somegroupname memberaddress2 somegroupname memberaddress1
somegroupname memberaddress3 somegroupname memberaddress1
somegroupname memberaddress4 somegroupname memberaddress1
somegroupname memberaddress5 somegroupname memberaddress1
somegroupname memberaddress6 somegroupname memberaddress1
somegroupname memberaddress7 somegroupname memberaddress1
somegroupname memberaddress1 somegroupname memberaddress2
somegroupname memberaddress2 somegroupname memberaddress2
somegroupname memberaddress3 somegroupname memberaddress2
somegroupname memberaddress4 somegroupname memberaddress2
somegroupname memberaddress5 somegroupname memberaddress2
somegroupname memberaddress6 somegroupname memberaddress2
somegroupname memberaddress7 somegroupname memberaddress2
我是新手,我意识到我的桌子设计可能是我的问题的一部分。任何人都可以提出一个可以帮助我的查询吗?
想要的结果:
groupname1 memberaddress1 groupname2 memberaddress2
somegroupname memberaddress1 somegroupname memberaddress1
somegroupname memberaddress2 somegroupname memberaddress2
somegroupname memberaddress3 somegroupname memberaddress3
somegroupname memberaddress4 somegroupname memberaddress4
somegroupname memberaddress5 somegroupname memberaddress5
somegroupname memberaddress6 somegroupname memberaddress6
somegroupname memberaddress7 somegroupname memberaddress7
somegroupname memberaddress8 null null
somegroupname memberaddress9 null null
感谢您抽出宝贵时间以及您能提供的任何帮助。
【问题讨论】:
-
FULL OUTER JOIN会解决你的问题
标签: sql-server sql-server-2012-express