有三个主表,三个主表之间有多对多表, 如何联接

Crystal_Boy 2007-12-26 02:38:12
a表 aid,aname (a主表)
b表 aid,cid (存储a表与b表的多对多关系)
c表 cid,cname (c主表)
d表 cid,eid (存储c表与e表的多对多关系)
e表 eid,ename (e主表)

做内联接式验,都成功(不包括NULL)
select a.*, b.*, c.* from
a inner join
(b inner join c
on b.cid = c.cid)
on a.aid = b.aid

select c.*, d.*, e.* from
c inner join
(d inner join e on d.eid = e.eid )
on c.cid = d.eid

当把上面的整合起来时,无数据显示,请问如何解决?

select a.*, c.*, e.* from
a inner join
(b inner join
(c inner join
(d inner join e on d.eid = e.eid )
on c.cid = d.eid)
on b.cid = c.cid)
on a.aid = b.aid
...全文
128 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
laiqun123 2007-12-27
  • 打赏
  • 举报
回复
用FULL JOIN
Crystal_Boy 2007-12-27
  • 打赏
  • 举报
回复
找到问题所在了,不好意思,是我自己的粗心
Crystal_Boy 2007-12-26
  • 打赏
  • 举报
回复
a表: b表: c表 d表 e表
aid,aname aid,cid cid,canme cid,eid eid,ename
1 张三 1 2 1 小编 1 2 1 删除新闻贴
2 李四 1 3 2 总编 2 1 2 发新闻贴
3 王五 2 1 3 经理 2 2 3 加奖金
3 1 3 3
Crystal_Boy 2007-12-26
  • 打赏
  • 举报
回复
a表 aid,aname (a主表)
b表 aid,cid (存储a表与b表的多对多关系)
c表 cid,cname (c主表)
d表 cid,eid (存储c表与e表的多对多关系)
e表 eid,ename (e主表)

a表: b表: c表 d表 e表
aid,aname aid,cid cid, canme cid, eid eid,ename
1 张三 1 1 小编 1 2 1 删除新闻贴
2 李四 1 2 总编 2 1 2 发新闻贴
3 王五 2 3 经理 2 2 3 加奖金
3 3 3

我想完整显检索出每个用户所属的角色和角色所拥有的权限(不包括空值)
下面使用嵌套方法,发见当嵌套d表时,面前嵌套检索出来的记录都不见了

select a.*, c.*, e.* from
a inner join
(b inner join
(c inner join
(d inner join e on d.eid = e.eid ) <<-- 嵌套这行是记录就不完了,请问为什么
on c.cid = d.eid)
on b.cid = c.cid)
on a.aid = b.aid

Crystal_Boy 2007-12-26
  • 打赏
  • 举报
回复

select a.*,c.* from a
inner join b on a.aid=b.aid
inner join c on b.cid=c.cid
inner join d on c.cid=d.eid <--- 内联d表时,无记录(d表为c表与e表的多对多关系表)

请解释为什么不使用嵌套的方法
Crystal_Boy 2007-12-26
  • 打赏
  • 举报
回复
我需要把上面的表的数据全部显示出来
liangCK 2007-12-26
  • 打赏
  • 举报
回复
上面打错字。

select a.*,c.*,e.* from 
a inner join b on a.aid=b.aid inner join c on b.cid=c.cid
inner join d on c.cid=d.eid inner join e on d.eid=e.eid
昵称被占用了 2007-12-26
  • 打赏
  • 举报
回复
举例说明你需要的

liangCK 2007-12-26
  • 打赏
  • 举报
回复
select a.*,c.*,e.* from 
a inner join b on a.aid=b.aid innser join c on b.cid=c.cid
innser join d on c.cid=d.eid inner join e on d.eid=e.eid


34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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