Using SQL Server 2012 Express
I have two tables, groupsmembers1
and groupsmembers2
.
Both tables contain four columns: groupname
, membername
, memberaddress
, ID
.
The tables are populated with group and member data from AD (1) and Domino (2).
The desire is to compare the groupname(s) and memberaddress(es) (between the two tables) to identify where a group and/or groupmember does/does not exist in either directory.
Both tables look similar to below:
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
My difficulty is building a query that will show me every group, from both tables, with each member even if one table does not have that exact entry.
I have tried this (and variations) from tons of posts I have read related to combining table data, joining tables and the like.
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%'
The query above gives me 49 rows of data like this (when table groupsmembers1 has 9 rows and table groupsmembers2 only has 7 rows for %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
I am new at this and realize my table design is probably part of my issue. Can anyone suggest a query that could help me?
Desired results:
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
Thank you for your time and any assistance you can provide.