у меня есть база данных SQL Server
с тремя столами:Возвращение записей, даже если они не существуют в соединяемых таблицах
ГРУППЫ
GroupID GroupTitle
1 Group 1
2 Group 2
3 Group 3
4 Group 4
ЧЛЕНЫ
MemberID MemberName
19 Jon
20 Marie
21 Andrew
ЧЛЕНЫ ГРУППЫ
MembersGroupID GroupID MemberID
221 1 20
231 1 21
Я сделал left join
и получил следующий результат:
GroupID GroupTitle MemberID IsPartOfGroup MemberName
1 Group 1 20 Yes Marie
1 Group 1 21 Yes Andrew
2 Group 2 NULL No NULL
3 Group 3 NULL No NULL
4 Group 4 NULL No NULL
Это мой присоединиться:
select g.GroupID
,g.GroupTitle
,mg.MemberID
,IsPartOfGroup = case when mg.MembersGroupID is null then 'No' else 'Yes' end
from groups g
left join membergroups mg on g.GroupID = mg.GroupID
left join members m on m.memberid = mg.MemberID
Но то, что я хочу, это следующий результат:
GroupID GroupTitle MemberID IsPartOfGroup MemberName
1 Group 1 19 No Jon
2 Group 2 19 No Jon
3 Group 3 19 No Jon
4 Group 4 19 No Jon
1 Group 1 20 Yes Marie
2 Group 2 20 No Marie
3 Group 3 20 No Marie
4 Group 4 20 No Marie
1 Group 1 21 Yes Andrew
2 Group 2 21 No Andrew
3 Group 3 21 No Andrew
4 Group 4 21 No Andrew
Другими словами, Я хочу получить всех членов и группы, в которых они входят, а также те, кем они не являются.
Возможно ли это?