zoukankan      html  css  js  c++  java
  • inner join 内联与left join 左联

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

     1 select t1.MOTCARRIERNAME
     2             ,t2.ROUTENAME
     3             ,y.BUSLICENSE
     4             ,y.ACCTPRICE
     5             ,y.PRICE
     6             ,y.CANACCTPRICE
     7             ,y.CENTERACCTPRICE
     8             ,y.OTHERACCTPRICE
     9             ,y.STAACCTPRICE
    10             ,y.TKAMOUNT
    11             ,y.SCHBILLID
    12             ,m.ManualTicketsStationFee
    13             ,m.ManualTicketsFee
    14         from
    15         (Select b.MOTCARRIERID
    16             ,b.ROUTEID
    17             ,b.BUSLICENSE
    18             ,a.SCHBILLID
    19             ,a.ACCTPRICE
    20             ,a.CANACCTPRICE
    21             ,a.CENTERACCTPRICE
    22             ,a.OTHERACCTPRICE
    23             ,a.PRICE
    24             ,a.STAACCTPRICE
    25             ,a.TKAMOUNT
    26             From history.TKSCHBILLHISTORY a
    27             ,history.TKSERIALSCHHISTORY b
    28             ,history.TKCARRYSTASCHHISTORY c
    29             Where a.Drvdate between @pStartDate and @pEndDate 
    30                 and a.SchBillStatusId=1 
    31                 and b.SchId=a.SchId 
    32                 and b.Drvdate=a.Drvdate 
    33                 and a.schid=c.schid 
    34                 and a.DRVDATE=c.DRVDATE
    35         )y
    36         ,baseinfo.MOTORCARRIER t1
    37         ,baseinfo.ROUTE t2
    38         ,Settlement.dbo.View_ManualTicket m
    39         where t1.MOTCARRIERID=y.MOTCARRIERID and t2.ROUTEID =y.ROUTEID and m.BusLicense=y.BUSLICENSE
    40         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

  • 相关阅读:
    【转】软链接和硬链接到底有啥作用和区别
    useradd命令详解
    【转】Linux下MySQL数据库安装及配置方法
    【转】MySQL的安装与配置——详细教程-window系统下
    mysql服务器常用命令
    【转】DDL/DML/DCL区别概述
    tmux终端工具的简单使用
    linux go环境安装和基本项目结构
    ClickHouse高可用集群的配置
    centos7下使用rpm包安装clickhouse
  • 原文地址:https://www.cnblogs.com/wsn1203/p/7541962.html
Copyright © 2011-2022 走看看