连接的问题

north7703 2003-03-28 11:23:09
现在有四个表,a(id,...),b(bid,bname,...),c(cid,cname,...),d(did,dname,...),在视图中希望得到a表中所有的id和其对应的bname,cname,dname,但是下面的语法无法实现,
select a.id,b.bname,c.cname,d.dname
from a left outer join b
on a.id = b.bid left outer join c
on a.id = c.cid left outer join d
on a.id = d.did
提示返回E_FAIL,如果将一个左连接改为内连接或者右连接则语法可以通过,另外如果将第一个左连接删除,并删除select中的bname,保留两个左连接,语法检查仍然无法通过,感觉好像是全部是左连接有问题,请问各位老大这是怎么回事?
...全文
7 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
north7703 2003-03-28
希望检索出所有的a中的id,a中的id可能在b,c,d中没有
回复
CrazyFor 2003-03-28
select a.id,b.bname,c.cname,d.dname
from a,b,c,d where a.id = b.bid and a.id = c.cid and a.id = d.did
回复
wuqiuzhi 2003-03-28
有没有什么东西写错了哦,我刚才试了一对一,一对多,a没有对其他id 有的情况,照你的方法结果都正常啊。
回复
enhydraboy 2003-03-28
试一下:
select a.id,a.bname,a.cname,ISNULL(d.dname,'')
FROM
(select a.id,a.bname,ISNULL(c.cname,'')
FROM
(select a.id,ISNULL(b.bname,'')
from a left outer join b
on a.id = b.bid ) a
left outer join c on a.id = c.cid) a
left outer join d on a.id = d.did
回复
liangz 2003-03-28
a 与 b c d 是一对一或者多对一的关系吗
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2003-03-28 11:23
社区公告
暂无公告