搜索
您的当前位置:首页正文

inner join 内联与left join 左联的实例代码

2020-11-27 来源:步旅网

今天老板把我叫过去,给我分析了一下我写的存储过程【捂脸羞愧中。。】,因为又临时加了个需求需要关联另外一个视图,我写成了内联,所以读取出来的数据少了好多。

select t1.MOTCARRIERNAME
 ,t2.ROUTENAME
 ,y.BUSLICENSE
 ,y.ACCTPRICE
 ,y.PRICE
 ,y.CANACCTPRICE
 ,y.CENTERACCTPRICE
 ,y.OTHERACCTPRICE
 ,y.STAACCTPRICE
 ,y.TKAMOUNT
 ,y.SCHBILLID
 ,m.ManualTicketsStationFee
 ,m.ManualTicketsFee
 from
 (Select b.MOTCARRIERID
 ,b.ROUTEID
 ,b.BUSLICENSE
 ,a.SCHBILLID
 ,a.ACCTPRICE
 ,a.CANACCTPRICE
 ,a.CENTERACCTPRICE
 ,a.OTHERACCTPRICE
 ,a.PRICE
 ,a.STAACCTPRICE
 ,a.TKAMOUNT
 From history.TKSCHBILLHISTORY a
 ,history.TKSERIALSCHHISTORY b
 ,history.TKCARRYSTASCHHISTORY c
 Where a.Drvdate between @pStartDate and @pEndDate 
 and a.SchBillStatusId=1 
 and b.SchId=a.SchId 
 and b.Drvdate=a.Drvdate 
 and a.schid=c.schid 
 and a.DRVDATE=c.DRVDATE
 )y
 ,baseinfo.MOTORCARRIER t1
 ,baseinfo.ROUTE t2
 ,Settlement.dbo.View_ManualTicket m
 where t1.MOTCARRIERID=y.MOTCARRIERID and t2.ROUTEID =y.ROUTEID and m.BusLicense=y.BUSLICENSE
 order by t1.MOTCARRIERNAME,t2.ROUTENAME,y.BUSLICENSE

这种关联叫做内联,表A,表B where A.Id=B.Id,只有表A,表B里都有这个ID,这条数据才会被显示出来。但是我的项目中需要的是以表A为主表,只要表A中有的数据都要显示出来,表B中有与表A相关的数据就显示,没有则置为空。

即A left join B on A.Id=B.Id

总结

以上所述是小编给大家介绍的inner join 内联与left join 左联的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

Top