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

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

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 左联的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • SQL之left join、right join、inner join的区别浅析

    今天和某朋友聊天,谈到他们公司的一个小问题.如下: 表A设备表,存储MAC地址,省份,城市,区. 表B软件表,存储MAC地址,软件名字. 功能是可以按省份,城市,或者区来查询软件列表. 你猜它现在如何做的? 它通过省份,城市,或者区取得MAC地址,然后查询B表用in查询. 这个很明显是不合理的,处理这种多对多的关系,为什么不用多表联查呢? 链表的方法常用的有3个: (inner) join 内部等值连接.left join 左连接 和 right join右连接. 有什么区别呢?怎么用呢? 下面

  • 超详细mysql left join,right join,inner join用法分析

    下面是例子分析表A记录如下: aID        aNum 1           a20050111 2           a20050112 3           a20050113 4           a20050114 5           a20050115 表B记录如下: bID        bName 1            2006032401 2           2006032402 3           2006032403 4           20

  • 数据库Left join , Right Join, Inner Join 的相关内容,非常实用

    一.先看一些最简单的例子 例子 Table Aaid   adate 1      a1 2      a2 3      a3 TableB bid bdate 1    b1 2   b2 4    b4 两个表a,b相连接,要取出id相同的字段 select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据. 此时的取出的是: 1 a1 b1 2 a2 b2 那么left join 指: select * from a left join b

  • SQL 外链接操作小结 inner join left join right join

    数据库操作语句  7. 外连接--交叉查询 7.1 查询  7.2 等值连接 7.3 右外连接 7.4 左外连接 7.5 更新操作 简介: 外部连接和自联接 inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 on 指定表间联结字段及其关系的等号 "=" 表达式, 返回 true 或 false. 当表达式返

  • 解析sql语句中left_join、inner_join中的on与where的区别

    table a(id, type):id     type ----------------------------------1      1         2      1          3      2          table b(id, class):id    class ---------------------------------1      12      2sql语句1:select a.*, b.* from a left join b on a.id = b

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

    今天老板把我叫过去,给我分析了一下我写的存储过程[捂脸羞愧中...],因为又临时加了个需求需要关联另外一个视图,我写成了内联,所以读取出来的数据少了好多. select t1.MOTCARRIERNAME ,t2.ROUTENAME ,y.BUSLICENSE ,y.ACCTPRICE ,y.PRICE ,y.CANACCTPRICE ,y.CENTERACCTPRICE ,y.OTHERACCTPRICE ,y.STAACCTPRICE ,y.TKAMOUNT ,y.SCHBILLID ,m.

  • JFileChooser实现对选定文件夹内图片自动播放和暂停播放实例代码

    本案例通过使用JFileChooser实现对选定文件夹内图片实现自动播放和暂停播放 代码如下,如有不合适的地方 还请指教 package com.xiaoqiang; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swin

  • 获取内联和链接中的样式(js代码)

    复制代码 代码如下: var head = document.getElementById( "box" ); // alert( head.style.background ) // alert( head.style.cssFloat || head.style.styleFloat ) // 获取float不一样 // head.style.fontSize = "30px" head.style.color = "#f00"; // (t

  • 关于javascript获取内联样式与嵌入式样式的实例

    通过style属性设置背景图案 <!--html--> <div id="change"> change color </div> /*css*/ #change { border: 1px solid black; width: 200px; height: 200px; text-align: center; line-height: 200px; } //js change.style.backgroundColor="purple&

  • JavaScript内置日期、时间格式化时间实例代码

    一.基础知识(date对象的方法)

  • vue内嵌iframe跨域通信的实例代码

    目录 vue内嵌iframe跨域通信 1.Vue组件中如何引入iframe? 2.vue如何获取iframe对象以及iframe内的window对象? 3.vue如何向iframe内传送信息? 4.iframe内如何向外部vue发送信息? vue内嵌iframe跨域通信 1.Vue组件中如何引入iframe? <template> <div class="act-form"> <iframe :src="src"></ifr

  • android ListView内数据的动态添加与删除实例代码

    main.xml 文件: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_pa

  • 浅谈内联函数与宏定义的区别详解

    用内联取代宏:1.内联函数在运行时可调试,而宏定义不可以;2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会: 3.内联函数可以访问类的成员变量,宏定义则不能: 4.在类中声明同时定义的成员函数,自动转化为内联函数.文章(一)内联函数与宏定义 在C中,常用预处理语句#define来代替一个函数定义.例如: #define MAX(a,b) ((a)>(b)?(a):(b)) 该语句使得程序中每个出现MAX(a,b)函数调用的地方都被宏定义中后面的表达式((a)

  • Kotlin中关于内联函数的一些理解分享

    前言 看了很多博客,才明白了内联的含义,其实最根本的就是将写在别处的代码拷贝到你现在执行的方法中,相当于在一个方法中执行,java的方法执行是需要压栈出栈的对吧,如果是两三个方法那就是两三次的压栈出栈,为了节省这个操作,提高一定的效率,kotlin就出了这么个函数.但又想想,如果是个超级大的函数,考来考去的也是很麻烦啊,所以这东西需要自己权衡吧,遵守单一职责,降低代码圈发杂度才是根本. 内联函数的理解 inline函数(内联函数)从概念上讲是编译器使用函数实现的真实代码来替换每一次的函数调用,带

  • 数据库中的左连接(left join)和右连接(right join)区别

    Left Join / Right Join /inner join相关 关于左连接和右连接总结性的一句话: 左连接 where只影向右表,右连接where只影响左表. Left Join select * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID 左连接后的检索结果是显示tbl1的所有数据和tbl2 中满足where 条件的数据. 简言之 Left Join影响到的是右边的表 Right Join select * from tbl1 R

随机推荐