zoukankan      html  css  js  c++  java
  • 1.mysql数据库的多表连接

     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 

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

    我们不一样
  • 相关阅读:
    IOS Charles(代理服务器软件,可以用来拦截网络请求)
    Javascript中addEventListener和attachEvent的区别
    MVC中实现Area几种方法
    Entity Framework Code First 中使用 Fluent API 笔记。
    自定义JsonResult解决 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
    序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
    An entity object cannot be referenced by multiple instances of IEntityChangeTracker 的解决方案
    Code First :使用Entity. Framework编程(8) ----转发 收藏
    Code First :使用Entity. Framework编程(6) ----转发 收藏
    Code First :使用Entity. Framework编程(5) ----转发 收藏
  • 原文地址:https://www.cnblogs.com/bug-mark/p/7909339.html
Copyright © 2011-2022 走看看