zoukankan      html  css  js  c++  java
  • Left Join、Right Join、Inner Join的区别

     

     概念上的区别:

    Left Join[左联结]

      返回包括左表中的所有记录和右表中联结字段相等的记录

    Right Join[右联结]

      返回包括右表中的所有记录和右表中联结字段相等的记录

    Inner Join[等值联结]

      只返回两个表中字段相等的行

    二 举例说明:

    表A记录如下:

    AID   AName
    1    李明
    2     王磊
    3     李鹏
    4     胡军

    表B记录如下:
    BID   BName
    1     明明
    2     李会军
    3     赵勇
    8     李中山

    执行SQL语句

    演示代码
    Left Join
    ---------------------------
    select 
    * from A Left Join B On A.AID=B.BID
    结果如下:
    AID AName BID BName
    1   李明    1  明明
    2   王磊    2  李会军
    3   李鹏    3  赵勇
    4   胡军   null null
    所影响的行数为4行
    结果分析:
    Left Join 是以A表为基础的,A可以看作是左表,B可以看作是右表,Left Join是以左表为准的.
    也可以简单的理解为,左表(A)的记录将会全部显示出来,而右表(B)只会显示符合搜索条件的记录;(如:A.AID
    =B.BID)

    Right Join 

    ---------------------------
    select 
    * from A Right Join B On A.AID=B.BID
    结果如下:
    AID AName BID BName
    1   李明    1  明明
    2   王磊    2  李会军
    3   李鹏    3  赵勇
    null null   8  胡军
    所影响的行数为4行
    结果分析:
    和Left Join的结果相反,Right Join 是以右表为基础的,左表不存在的用null来填充;

    Inner Join
    ---------------------------
    select 
    * from A Inner Join B On A.AID=B.BID
    结果如下:
    AID AName BID BName
    1   李明    1  明明
    2   王磊    2  李会军
    3   李鹏    3  赵勇
    所影响的行数为3行
    结果分析:
    怎么,少了一条记录,对了,Inner Join 只是显示出了A表中和B表中符合条件的记录,而不以任何一张表为基准.
  • 相关阅读:
    VS2005中乱码问题
    android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法
    android中的ellipsize设置(省略号的问题)
    手机web——自适应网页设计(html/css控制)
    Android横屏竖屏切换的问题
    android webview js alert对话框 不能弹出 解决办法
    WebView点击加载的页面中的按钮时不弹出新窗口以及在加载后执行javascript
    MVC学习笔记---MVC需要用的那些知识点
    CLR via C#学习笔记---类型
    C#学习笔记---协变和逆变
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/1806845.html
Copyright © 2011-2022 走看看