多表查询求助,急。

lingyu0303 2011-06-02 10:52:33
我现在有一张主表,几张子表:
主表A,子表B,C,D,E;
A与E之间是一对多关系,A与B之间是一对多关系,B与C之间,C与D之间,也是一对多的关系;要实现通过A的主键查询,SQL要怎么写。
...全文
58 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hddarkness 2011-06-03
  • 打赏
  • 举报
回复
这样写效率很低建议 跟inner left right结合
[Quote=引用 5 楼 skyblue82 的回复:]
select MP.OUTAGE_PLAN_ID,
DP.OUTAGE_DEPT_ID,
RA.OUTAGE_RANGE_ID,
LI.OUTAGE_LINE_ID,
LI.SUBSTATION_ID,
LI.SUBSTATION_NAME,
LI.SUBSTATION_VOLTAGE,
LI.LINE_NAME,
LI.LINE_ID,
LI……
[/Quote]
hddarkness 2011-06-03
  • 打赏
  • 举报
回复
建议将where语句用到每张表中可以提高效率,建议你看一下SQL语句的优先级
hddarkness 2011-06-03
  • 打赏
  • 举报
回复
建立多个表别名 即可达到所想要的进行 A对B 内联或者左连 B对C的左连 如果连接有误会造成笛卡尔积错误,具体需求具体分析
HOME_ning 2011-06-02
  • 打赏
  • 举报
回复
自己创建几个表自己亲手去试验~~~
tangren 2011-06-02
  • 打赏
  • 举报
回复
关键你要查询什么样的数据
304的的哥 2011-06-02
  • 打赏
  • 举报
回复
多表查询,使用连接,但是连接分:内连接,外连接,等值连接
你最好给出些数据,然后给出想要的结果
jinzhaoyouqing 2011-06-02
  • 打赏
  • 举报
回复
可以采纳
[Quote=引用 5 楼 skyblue82 的回复:]
select MP.OUTAGE_PLAN_ID,
DP.OUTAGE_DEPT_ID,
RA.OUTAGE_RANGE_ID,
LI.OUTAGE_LINE_ID,
LI.SUBSTATION_ID,
LI.SUBSTATION_NAME,
LI.SUBSTATION_VOLTAGE,
LI.LINE_NAME,
LI.LINE_ID,
LI……
[/Quote]
skyblue82 2011-06-02
  • 打赏
  • 举报
回复
select MP.OUTAGE_PLAN_ID,
DP.OUTAGE_DEPT_ID,
RA.OUTAGE_RANGE_ID,
LI.OUTAGE_LINE_ID,
LI.SUBSTATION_ID,
LI.SUBSTATION_NAME,
LI.SUBSTATION_VOLTAGE,
LI.LINE_NAME,
LI.LINE_ID,
LI.LINE_VOLTAGE,
LI.DEPT_NAME,
LI.DEPT_CODE,
LI.DEPT_ID,
LI.IS_TURN,
LI.IS_OUTAGE
from INTEGRATED_OUTAGE_MONTHPLAN MP,
INTEGRATED_OUTAGE_DEPT DP,
INTEGRATED_OUTAGE_RANGE RA,
INTEGRATED_OUTAGE_LINE LI
where mp.OUTAGE_PLAN_ID = '330845'
and mp.OUTAGE_PLAN_ID = DP.OUTAGE_PLAN_ID
and dp.OUTAGE_DEPT_ID = RA.OUTAGE_DEPT_ID
and RA.OUTAGE_RANGE_ID = LI.OUTAGE_RANGE_ID
lingyu0303 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bobo12082119 的回复:]

多表查询,使用连接,但是连接分:内连接,外连接,等值连接
你最好给出些数据,然后给出想要的结果
[/Quote]

这个你要什么数据呢,我想要的结果就是select查询出A B c d四个表的数据
这个是我写的一个SQL 根据A表的ID 查询数据
select * from (select MP.OUTAGE_PLAN_ID,DP.OUTAGE_DEPT_ID,RA.OUTAGE_RANGE_ID,LI.OUTAGE_LINE_ID,
LI.SUBSTATION_ID,LI.SUBSTATION_NAME,LI.SUBSTATION_VOLTAGE,LI.LINE_NAME,LI.LINE_ID,
LI.LINE_VOLTAGE,LI.DEPT_NAME,LI.DEPT_CODE,LI.DEPT_ID,LI.IS_TURN,LI.IS_OUTAGE from
INTEGRATED_OUTAGE_MONTHPLAN MP --A
left join INTEGRATED_OUTAGE_DEPT DP on MP.OUTAGE_PLAN_ID=DP.OUTAGE_PLAN_ID --B
left join INTEGRATED_OUTAGE_RANGE RA on RA.OUTAGE_DEPT_ID=DP.OUTAGE_DEPT_ID --c
left join INTEGRATED_OUTAGE_LINE LI on LI.OUTAGE_RANGE_ID=RA.OUTAGE_RANGE_ID --d
) p
where p.OUTAGE_PLAN_ID = 330845;

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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