请问这个sql怎么写呢????(5个表互相关联)

某鸟 2003-10-11 02:33:56
5个表a, b, c, d, e相互关联如下:

d
^
|
b <--a--->e
|
ˇ
c
(但愿大家能看懂:()
就是a分别和b,d,e互相关联,然后b和c关联

这一串inner join怎么写啊?
条件可以用on conditions代替。
...全文
87 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
某鸟 2003-10-14
  • 打赏
  • 举报
回复
俺的字段名又弄错啦:(
某鸟 2003-10-13
  • 打赏
  • 举报
回复
所以后来我只输出了那个表的一个(其他的)字段,不用x.*了。
某鸟 2003-10-13
  • 打赏
  • 举报
回复
不是的。
错误不在那。

我也怀疑过是那个问题,所以后来我只输出了那个表的一个(其他的)字段,不用x.xx了。
可还是这个错误。

那个列名在on xxxxx的条件里。
那个什么b.id = 。。不是用了2次吗?
就在第二次那出问题了。

怎么屏蔽类似这个却在条件语句里的错误啊?
pengdali 2003-10-13
  • 打赏
  • 举报
回复
select a.id,b.id from a
------^^^^^^^^^^^这就会错!应为有两个id,列名一样了

select a.id,b.id id2 from a
---------------^^^^^这里用别名来屏蔽这个错误
某鸟 2003-10-12
  • 打赏
  • 举报
回复
555555555
我写了表名了,
我用了select a.*, b.xxx, c.xxx from...
pengdali 2003-10-11
  • 打赏
  • 举报
回复
select * from a
join b on a.bid=b.id
join d on d.bid=b.id
join e on d.eid=e.id
join c on b.cid=c.id

没有问题,除非你是在视图或子查询里用了,如果是的话你把 select * 改为 select a.xx,b.yy....
opolmzy 2003-10-11
  • 打赏
  • 举报
回复
up
某鸟 2003-10-11
  • 打赏
  • 举报
回复
应该是
select * from a join b on a.bid=b.id join d on d.bid=b.id join e on d.eid=e.id join c on b.cid=c.id

老大,我可不是那么写的嘛,然后他出错,他说
列名id(就是b.id)无效。

由于里面b.id用了2次,我分不清哪个算错的了。
pengdali 2003-10-11
  • 打赏
  • 举报
回复
那你改改嘛,老大。
某鸟 2003-10-11
  • 打赏
  • 举报
回复
大力,你搞错了吧?
我的那个图里,d和a一样,都有bid
应该是join d on d.bid = b.id差不多。
可我这出错了:(
某鸟 2003-10-11
  • 打赏
  • 举报
回复
怒!!!
刚才说的话又没了!

我说我刚才写的好像是字段名写错了:(
某鸟 2003-10-11
  • 打赏
  • 举报
回复
我也分不清哪个是主表
pengdali 2003-10-11
  • 打赏
  • 举报
回复
sp1:

select * from a join b on a.bid=b.id join d on b.did=d.id join e on d.eid=e.id join c on b.cid=c.id
pengdali 2003-10-11
  • 打赏
  • 举报
回复
还是这样
select * from a join b on a.bid=b.id join d on a.did=d.id join e on a.eid=e.id join c on b.cid=c.id

你要说哪个是主表,呵呵。
某鸟 2003-10-11
  • 打赏
  • 举报
回复
怒!
我刚才费好大劲画的都没了!:'(


a
|
ˇ
b <----d
| |
ˇ ˇ
c e

这个怎么写啊?
pengdali 2003-10-11
  • 打赏
  • 举报
回复
破鸟现在清闲拉?
做什么程序呢?
riemann413 2003-10-11
  • 打赏
  • 举报
回复
哈哈
某鸟 2003-10-11
  • 打赏
  • 举报
回复
这么多写法:O

等过几天,我放进我程序里能用再说。:-$
pengdali 2003-10-11
  • 打赏
  • 举报
回复
破鸟,这么多话,给分!

呵呵。
zjcxc 元老 2003-10-11
  • 打赏
  • 举报
回复

select * from a
join d on a.xx=d.xx
join e on a.xx=e.xx
join (select * from b join c on b.xx=c.xx) b on a.xx=b.xx

加载更多回复(5)

34,874

社区成员

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

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