關于連接的問題﹗-Oracle

lmh79 2002-01-15 08:11:18
表 A
表 B
表 C
表 D

A: 主表
cd     other
01     tt1
02     tt2

B: 從表
id     cd     otherCd
1     01     a
2     01     b
3     02     c

C: 主表2
otherCd     test
a         dd1    
b         dd2
c         dd3

D: 從表3
id         otherCd 
1          a
2          a
3          b

sql語句找出所有a表關聯到的d表的數據
數據量可能很大﹐怎樣效率最高﹗
...全文
124 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmh79 2002-01-16
  • 打赏
  • 举报
回复
字段涉及B,C,D

結論﹕全部等值連接﹗
蓝天 2002-01-16
  • 打赏
  • 举报
回复
结果集中需要哪些字段?
lmh79 2002-01-16
  • 打赏
  • 举报
回复
B和C的關系是這樣的﹗
在B中的一定在C中﹐但在C中的可能還不在B中﹗ 如果在B中的話﹐C中就會有一個相對應﹗
bzszp 2002-01-16
  • 打赏
  • 举报
回复
和c没关系吧,可以不用
lmh79 2002-01-16
  • 打赏
  • 举报
回复
算了﹐結了吧﹗
xinpingf 2002-01-16
  • 打赏
  • 举报
回复
question no. 1
你这些表中的字段名字都差不多,到底谁关联到谁?
你只说从表2、从表3,可从表3到底和那个关联?
lmh79 2002-01-15
  • 打赏
  • 举报
回复
B和C是一對一的﹗
C可以不用嗎﹖
KingSunSha 2002-01-15
  • 打赏
  • 举报
回复
select a.*
from a, b, d
where a.cd = b.cd
and b.otherCd = d.otherCd;

只要你对a.cd、b.cd、b.otherCd、d.otherCd加了索引就不会很慢
lmh79 2002-01-15
  • 打赏
  • 举报
回复
B的id和D的id沒有關聯的﹐只是流水號而已﹗
boby_v 2002-01-15
  • 打赏
  • 举报
回复
select * from D
where exists
(select 2 from A,B,C
where A.cd =B.cd
and B.otherCd=C.otherCd
and C.otherCd=D.otherCd
and B.id=D.id)
表有索引,不要写 in 和 not in ,效率应该就不成问题

2,598

社区成员

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

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