连接的问题

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,保留两个左连接,语法检查仍然无法通过,感觉好像是全部是左连接有问题,请问各位老大这是怎么回事?
...全文
55 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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 是一对一或者多对一的关系吗

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧