关于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。
   内连接是把匹配的关联数据显示出来;左连接是左边的表全部显示出来,右边的表显示出符合条件的数据;右连接正好相反。

 

 

posted @ 2019-12-10 15:53  余情呀  阅读(767)  评论(0)    收藏  举报