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意思是去除相同的字段 ,语句意思和上面一样。
他们之间差别是 查询数据过多时,多表联合查询比嵌套查询 速度快很多 。