这个关联该怎么取?有两个表FranchiseJoin和JoinFJID和JID是外键关系declare @FranchiseJoin table(ID int,
这个关联该怎么取?
有两个表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时
1a111
2bNULLNULLNULL
3c213
4dNULLNULLNULL
5eNULLNULLNULL
6fNULLNULLNULL
7gNULLNULLNULL
当@FranchiseJoin FFID=2时
1a321
2bNULLNULLNULL
3cNULLNULLNULL
4dNULLNULLNULL
5eNULLNULLNULL
6fNULLNULLNULL
7gNULLNULLNULL
也就是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
