bug-mark

 1.测试环境说明

   (1)mysql:mysql-5.5.53-winx64;          

   (2)可视化操作工具:Navicat_V11.0.10_XiTongZhiJia;

2.建表

     数据表有三user ,jme,sms

                                           表1_user

            

                                            表2_jme

            

                                              表3_sms

            

3.测试

   (1)自连接,顾名思义,自己和自己多次连接,最终得到自己需要的列。(不做过多讨论)

   (2)left join 或者left outer join 

           select * from user a left outer join sms  b on a.id = b.id

           select * from user a left  join sms  b on a.id = b.id

           

   (3)right join 或者rigth outer join

            select * from user a right outer join sms  b on a.id = b.id

            select * from user a right join sms  b on a.id = b.id

           

    (4)full outer join或者full join

            注意:mysql不支持这种连接的写法!!

            练习:select * from user,jme,sms

            结果:从左往右一行一行的依次连接

             

   (5)交叉连接 cross join 

                 select * from user a cross join jme b     笛卡尔积

             

 

 4.概念

    (1)内连接——最常用 (INNER JOIN )
             定义:仅将两个表中满足连接条件的行组合起来作为结果集。

    (2)外连接 
             左(外)连接 
                    定义:在内连接的基础上,还包含左表中所有不符合条件的数据行,并在其中的右表列填写NULL 
             关键字:LEFT JOIN     

             右(外)连接 
                   
定义:在内连接的基础上,还包含右表中所有不符合条件的数据行,并在其中的左表列填写NULL 
             关键字:RIGHT JOIN 
      (3)完全连接 
                    定义:
在内连接的基础上,还包含两个表中所有不符合条件的数据行,并在其中的左表、和右表列填写NULL 
              关键字:FULL JOIN

       (4)交叉连接 
                       定义:
将两个表的所有行进行组合,连接后的行数为两个表的乘积数。(笛卡尔积) 
               关键词:CROSS JOIN 

        注意:完全连接和交叉连接的区别。主要体现在空行,交叉连接没有条件限制。
    

 

分类:

技术点:

相关文章:

  • 2021-11-03
  • 2021-09-29
  • 2021-12-08
  • 2021-12-18
  • 2022-01-19
  • 2021-12-07
  • 2021-11-23
猜你喜欢
  • 2021-11-28
  • 2021-10-16
  • 2021-11-13
  • 2021-09-29
  • 2021-08-16
  • 2021-10-29
相关资源
相似解决方案