create view test as select * from Package as a inner join InSheet as b a.InSheetID=b.InSheetID inner join OutSheet c on a.OutSheetID=c.OutSheetID where (select * from Client as d inner join InSheet as b d.ID=b.ClientID inner join OutSheet c on d.ID=c.ClientID )
自己解决了! 只要在from里面用left outer join,再distinct一下就可以了!select distinct Package.id as PackID, InSheet.id as InSheetID, OutSheet.id as OutSheetID from Package left outer join InSheet on Package.InSheetID=InSheet.id left outer join OutSheet on Package.OutSheetID=OutSheet.id 哈哈~~ 不过还是谢谢上面几位! 散分结贴!
看圖關系還是?select
*
from
Package a
join
InSheet b on a.InSheetID=b.ClientID
join
OutSheet c on a.OutSheetID=c.ClientID
不知道为什么那个View就是全空了
至少应该显示一个InClientID才对~
可能是Client表公用的缘故吧!
它的InClientID来自于Client的id
它的OutClientID也来自于Client的id
也就是如果一个基本表里有多个外键的话
如果要建立一张使用多个外键的View
SQL语句该怎么写,
就是as select……里面where的条件,或者from里面如何join
as
select * from Package as a inner join InSheet as b a.InSheetID=b.InSheetID inner join OutSheet c on a.OutSheetID=c.OutSheetID
where (select * from Client as d inner join InSheet as b d.ID=b.ClientID inner join OutSheet c on d.ID=c.ClientID )
只要在from里面用left outer join,再distinct一下就可以了!select distinct Package.id as PackID, InSheet.id as InSheetID, OutSheet.id as OutSheetID
from Package left outer join
InSheet on Package.InSheetID=InSheet.id left outer join
OutSheet on Package.OutSheetID=OutSheet.id
哈哈~~
不过还是谢谢上面几位!
散分结贴!
有前面两个就可以了!
HOHO~~