• 关于MySQL的内连接,外连接的总结


       首先创建两个数据库表,用户表u,账户表a

         先看一下数据库表:

             u表:

                           

               a表:

                           

       1. 内连接。

       关键字:inner join

       SQL语句: select u.*,a.ID as aid,a.money from u INNER JOIN a ON u.id=a.uid;

       结果

                                         

                               

       * 只输出匹配的数据,即u表id与a表uid相同的数据,相当于 “select u.*,a.ID as aid,a.money from u,a where u.id=a.uid;”,结果是一样的。

       2.外连接。左向外连接、右向外连接  

         (1)左向外连接(左连接)

        关键字: LEFT  JOIN或LEFT OUTER JOIN     

       SQL语句:select u.*,a.ID as aid,a.money from u LEFT JOIN a ON u.id=a.uid;

        结果:

                                     

       *左向外连接的结果集包括  LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果u表的某行在a表中没有匹配行,则在相关联的结果集行中a表的所有选择列表列均为空值。(为了理解这里给出结果一样的右连接查询:“select u.*,a.ID as aid,a.money from a RIGHT JOIN u ON u.id=a.uid;”)

      (2)右向外连接(右连接)

        关键字:RIGHT  JOIN 或 RIGHT  OUTER  JOIN     

        SQL语句: select u.*,a.ID as aid,a.money from u RIGHT JOIN a ON u.id=a.uid;;

        结果:

                                     

                                   

       *右向外联接是左向外联接的反向联接。将返回b表的所有行,如果b表的某行在左表中没有匹配行,则将为a表返回空值。

    总结:

    内连接,左连接,右连接的区别是什么?

             ① 内连接关键字:inner join;
             ② 左连接:left join;
             ③ 右连接:right join。
       内连接是把匹配的关联数据显示出来;左连接是左边的表全部显示出来,右边的表显示出符合条件的数据;右连接正好相反。

  • 相关阅读:
    计算任意两个日期的间隔天数
    题目标题: 排它平方数
    历届试题 剪格子
    历届试题 翻硬币
    C语言中%d,%o,%f,%e,%x的意义
    历届试题 买不到的数目
    九度 OJ1008 hdu 3790
    南洋理工 OJ 115 城市平乱 dijstra算法
    蓝桥杯 错误票据 原创代码+思路
    历届试题 连号区间数
  • 原文地址:https://www.cnblogs.com/yuqingya/p/12017167.html
Copyright © 2020-2023  润新知