SQL中,使用Where还是Join?

 使用Where还是Join?

       以前确实没有注意过,但是使用Where条件连接表可能会降低运行速度。

        1)Select ... ...From TA,TB,TC Where TC.col3 = TA.col1 And TC.col3=TB.col2 And TC.col4=1

              这个查询隐含TA.col1=TB.col2,但是没有直接设定这个条件。如果TA和TB每个表都包含100条记录,那么将有10000组合将和TC关系起来。

       2)Select... ... From TA join TB on TA.col1=TB.col2 join TC on TB.col2=TC.col3 Where TC.col4=1

              在组合TC之前,TA.col1=TB.col2条件直接缩小TA和TB的行数,提高速度。

      3)Select ... ...From TC join TB on TC.col3 = TB.col2 join TA on TC.col3=TA.col1 Where TC.col4 = 1

         这个查询可以提高一大步,如果改变表的顺序,所以TC.col4=1将最先使用,这样更小的集合将组合到一起。

 

关于数据库中随机取记录的

   SQL Server:  Select top 10 * From Table Order by newid()

  Oracle:有一个行数函数 rownum

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值