一个关于左连接的问题,很多张表!

fibbery 2008-06-16 06:18:00
tab_a,tab_b,tab_c,tab_d,tab_e


tab_a和tab_b属于正常连接,tab_b和tab_c需要左连接,tab_c、tab_d、tab_e正常连接

但是我使用
FROM tab_a a JOIN tab_b b ON a.id=b.id LEFT JOIN tab_c c ON b.id=c.id AND b.time=c.time JOIN tab_d d ON ....


检索出来的并不是我想要的集合,但是我仅仅使用:
select * from tab_b b LEFT JOIN tab_c ON b.id=c.id AND b.time = c.time

就可以得到我想要的行数(连接其他表是因为我想要关联表的某些数据),我该如何写着一个SQL?谢谢!
...全文
318 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghost0409 2010-08-04
  • 打赏
  • 举报
回复
学习下再看看
CathySun118 2008-06-17
  • 打赏
  • 举报
回复
来晚了,恭喜
ruihuahan 2008-06-16
  • 打赏
  • 举报
回复
join 语法也可以加括号来调整逻辑关系的。
gxlineji 2008-06-16
  • 打赏
  • 举报
回复
呵呵~~~~
fxianxian 2008-06-16
  • 打赏
  • 举报
回复
JF
hebo2005 2008-06-16
  • 打赏
  • 举报
回复
SELECT *
FROM (SELECT *
FROM tab_a a, tab_b b
WHERE a.ID = b.ID) aa,
(SELECT *
FROM tab_c c, tab_d d, tab_e e
WHERE c.ID) bb
WHERE aa.ID = bb.ID(+) AND aa.TIME = bb.TIME(+)
fibbery 2008-06-16
  • 打赏
  • 举报
回复
接下来散分,来者有分!
fibbery 2008-06-16
  • 打赏
  • 举报
回复
哦,已经搞定了,继续几个也要写上LEFT OUTER JOIN

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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