sql嵌套查询和多表联合查询之间的差别

sql语句会用到许多查询语句,如果牵扯到多张表的时候 一般会需要复杂查询方式:

       嵌套查询:

     

select * from bi_BillItem where BillID in (select BillID from bi_Bill where IsArchived='0' and IsCheckOuting='2') group by menuId,MenuPrice

这条语句 其中  select,as, count ,from where,in ,and,group up都是关键字,这条语句的意思是:bi_BillItem根据billid去bill表查满足这些条件的如果查到满足条件billid相等的就查询出bi_BillItem中的menuId,menuName,MenuPrice,(sum(AmountOrder)-sum(AmountCancel))字段  并且按 menuId和menuPrice排序

 

 

    多表联合查询:

 

select * from bi_BillItem left join bi_Bill on bi_BillItem.BillID=bi_Bill.BillID where IsArchived='0' and IsCheckOuting='2'  group by menuId,MenuPrice

这条语句 也叫做多表关联查询,left join 意思左关联的意思 ,distinct意思是去除相同的字段 ,语句意思和上面一样。

 

 

  他们之间差别是 查询数据过多时,多表联合查询比嵌套查询 速度快很多 。


   

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值