求一个2个表联合查询性能较高的sql语句。 b有近千万条数据还用in?用exists或者左连接,推荐后者,应该快多了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充一点:表A中任一条记录对应表B中多条记录,并且这种对应关系中表B中的 满足b3=‘testb3‘只有一条,简而言之,一条表A中的记录对应一条表B中 一条b3=testb3‘的纪录. select A.* from A, (select B.a1 from B where B.b1 like 't%' and B.b2 = '20060116' and B.b3 = 'testb3') B where A.a1=B.A1) to bobfang: 不需要在设A的 这2个条件了吗? A.a1 like 't%'and A.a2 = '20060116' select A.* from A, (select B.a1 from B where B.b1 like 't%' and B.b2 = '20060116' and B.b3 = 'testb3') B where A.a1=B.a1 按照你前面所说的“b1=a1加上某个字符”,由于b1已经是like 't%'了,所以a1必然满足“A.a1 like 't%'”。又,你说“保证表A和表B相关联的纪录在同一分区内”,所以条件A.a2 = '20060116'也可以省。但如果A表的索引也是分区的,那么需要加上A.a2 = '20060116'。 刚学oracle,问个新手问题 类似触发器或存储过程 translate的问题,求教 oracle,data mining,data miner连接时报错:Specified schema is not configured for use with Oracle Data Mining 谁帮忙解决一下ORACLE语句 怎样用一条语句判断用户名错误还是密码错误? sqlserver2000存储过程如何改为oracle存储过程? 希望学习存储过程和触发器编程 请教OCI函数的版本问题? 触发器能否根据判断条件,删除刚插入的记录? sql语句中怎样做字符处理? sql优化问题!! 在线等!!!
满足b3=‘testb3‘只有一条,简而言之,一条表A中的记录对应一条表B中
一条b3=testb3‘的纪录.
from A,
(select B.a1 from B
where B.b1 like 't%' and B.b2 = '20060116' and B.b3 = 'testb3') B
where A.a1=B.A1)
不需要在设A的 这2个条件了吗?
A.a1 like 't%'and A.a2 = '20060116'
from A,
(select B.a1 from B
where B.b1 like 't%' and B.b2 = '20060116' and B.b3 = 'testb3') B
where A.a1=B.a1
又,你说“保证表A和表B相关联的纪录在同一分区内”,所以条件A.a2 = '20060116'也可以省。
但如果A表的索引也是分区的,那么需要加上A.a2 = '20060116'。