这个关联该怎么取?
有两个表FranchiseJoin和Join
FJID和JID是外键关系
declare @FranchiseJoin table(ID int,FFID int,FJID int)
insert into @FranchiseJoin
select 1,1,1 union
select 2,1,3 union
select 3,2,1
declare @Join table(JID int,Name varchar(20))
insert into @Join
select 1,'a' union
select 2,'b' union
select 3,'c' union
select 4,'d' union
select 5,'e' union
select 6,'f' union
select 7,'g'
最后想得到如下数据
当@FranchiseJoin FFID=1时
1 a 1 1 1
2 b NULL NULL NULL
3 c 2 1 3
4 d NULL NULL NULL
5 e NULL NULL NULL
6 f NULL NULL NULL
7 g NULL NULL NULL
当@FranchiseJoin FFID=2时
1 a 3 2 1
2 b NULL NULL NULL
3 c NULL NULL NULL
4 d NULL NULL NULL
5 e NULL NULL NULL
6 f NULL NULL NULL
7 g NULL NULL NULL
也就是Join要取得到全部数据,而FranchiseJoin只取FJID关于某个值的那些数据,其他用NULL显示。
不知道该怎么取?
------解决方案-------------------- declare @FranchiseJoin table(ID int,FFID int,FJID int)
insert into @FranchiseJoin
select 1,1,1 union
select 2,1,3 union
select 3,2,1
declare @Join table(JID int,Name varchar(20))
insert into @Join
select 1,'a' union
select 2,'b' union
select 3,'c' union
select 4,'d' union
select 5,'e' union
select 6,'f' union
select 7,'g'
select *
from @Join as a left join @FranchiseJoin as b on a.JID=b.FJID
where FFID=1 or b.FJID is null