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意思是去除相同的字段 ,语句意思和上面一样。

 

 

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


   

 

 

你可能感兴趣的:(sql)