zoukankan      html  css  js  c++  java
  • SQL——JOIN(连接)

    JOIN基于多个表之间的共同字段,把多个表的行结合起来。

    一、INNER JOIN 关键字

    INNER JOIN关键字:在表中存在至少一个匹配时返回行。

    语法如下:

    SELECT 列名1,列名2... FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;
    

    演示student表:                  演示class表:

        

    例子:

    SELECT * FROM student INNER JOIN class ON student.class_id = class.class_id;
    

    运行结果:

    可以看到student表的class_id=7和class表的class_id6都没有搜索出来。

    二、LEFT JOIN 关键字

    LEFT JOIN 关键字:返回表1的所有行,表2没有匹配的则为NULL。

    语法格式如下:

    SELECT 列名1,列名2... FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;
    

    例子:

    SELECT * FROM student LEFT JOIN class ON student.class_id = class.class_id;
    

    运行结果:

    可以看到,返回了student表的所有行,class表不匹配的显示NULL。

    三、RIGHT JOIN关键字

    RIGHT JOIN关键字:和LEFT JOIN关键字相反,返回表2的所有行,表1中没有匹配的则显示为NULL。

    语法格式如下:

    SELECT 列名1,列名2... FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;
    

    例子:

    SELECT * FROM student RIGHT JOIN class ON student.class_id = class.class_id;
    

    运行结果:

    可以看到,返回了class表的所有行,student表不匹配的显示NULL。

    四、FULL OUTER JOIN关键字

    FULL OUTER JOIN关键字:返回表1表2中的所有行(注意MySql中不支持)。

    语法格式如下:

    SELECT 列名1,列名2... FROM 表1 FULL OUTER JOIN 表2 ON 表1.列名 = 表2.列名;
    

    例子:

    SELECT * FROM student FULL OUTER JOIN class ON student.class_id = class.class_id;
    

    ╭(╯^╰)╮由于使用的是MySql,所以运行结果就不显示出来了。

  • 相关阅读:
    2019 web安全基础知识学习
    nc语法和nc木马远程控制主机
    公钥、私钥、hash、数字签名、CA以及验证过程
    A5/1流加密理解和算法实现
    TCP/IP和OSI/RM以及协议端口
    【转】TCP/IP网络协议各层首部
    校园网 虚拟机VMware Linux桥接模式 无法上网 问题
    本地远程查看服务器tomcat 上虚拟机信息
    跨域访问的解决
    混合调用tk.mybatis.mapper 与 自编xml文件 的配置
  • 原文地址:https://www.cnblogs.com/mingmingming/p/11369080.html
Copyright © 2011-2022 走看看