• 【mysql-02-5】使用文档-查询练习02


    一、连接查询-内连接、左连接、右连接

    1.1 内连接、外连接【概念】

    内连接【inner join 或者 join】

    外连接

    左连接 left join 或者 left outer join

    右连接 right join 或 righ outer join

    完全外连接 full join 或者 full outer join

    1.2 创建2个表

    1.2.1person表、card

    没有 创建 外键 !!!

       

    /* 创建数据库 */

    create databases testJoin;

    /* 创建2个表 */

    -- 1、person表

    create table person(

    id int,

    name varchar(20),

    cardId int

    );

    -- 2、card表

    create table card(

    id int,

    name varchar(20)

    );

    1.2.2、添加数据

    insert into card values(1, '饭卡');

    insert into card values(2, '建行卡');

    insert into card values(3, '农行卡');

    insert into card values(4, '工商卡');

    insert into card values(5, '邮政卡');

    select * from card;

    /* ------ 没有创建外键!!! ------ */

    insert into person values(1, '霸刀宋壹', 1);

    insert into person values(2, '暴走丁二', 3);

    insert into person values(3, '忍者张三', 6);

    select * from person;

    1.3 内连接、左外连接、右外连接、全外连接

    3.1、内连接【inner join查询、join查询】

    内联查询,其实就是两张表中的数据,通过某个字段相等,查询出相关记录数据。

       

    select * from person inner join card on person.cardId = card.id;

    select * from person join card on person.cardId = card.id;

    3.2、左外连接【left join、left outer join】

    左外连接,会把左边表里面的所有数据取出来,而右边表中的数据,如果有相等的,就显示出来;

    如果没有,就会补NULL。

       

    select * from person left join card on person.cardId = card.id;

    select * from person left outer join card on person.cardId = card.id;

    3.3、右外连接【right join、right outer join】

    右外连接,会把右边表里面的所有数据取出来,而左边表中的数据,如果有相等的,就显示出来;

    如果没有,就会补NULL。

       

    select * from person right join card on person.cardId = card.id;

    select * from person right outer join card on person.cardId = card.id;

    3.4、全外连接【full join】

       

    select * from person full join card on person.cardId = card.id; /* MySQL 不支持 full join */

    select * from person right join card on person.cardId = card.id

    union

    select * from person left join card on person.cardId = card.id;

    二、连接查询-mysql不支持full join

    连接的好处:不用创建外键;可以根据连接表的某字段相等,求 交集、并集。

    2.1 图解

    1、内连接【两个表的交集】

    2、左外连接

    3、右外连接

    4、全外连接

    2.2 举例

    select * from person full join card on person.cardId = card.id; /* MySQL 不支持 full join */

    select * from person right join card on person.cardId = card.id

    union

    select * from person left join card on person.cardId = card.id;

     

     

    来自 <https://blog.csdn.net/weixin_44949135/article/details/106735501>

  • 相关阅读:
    git使用总结
    将本地项目上传到git
    ASP.NET MVC中注册Global.asax的Application_Error事件处理全局异常
    SQLQueryStress
    SQL Server 触发器
    HTTP 错误 404.3
    HTTP 错误 500.19 Internal Server Error的解决方法
    windows server 2012 配置多用户ftp服务器配置注意点
    自定义Remote验证(对博客园文章“Asp.net MVC验证哪些事(3)-- Remote验证及其改进(附源码)”自定义验证的改进)
    [ASP.net教程]IIS服务器 远程发布(Web Deploy)配置
  • 原文地址:https://www.cnblogs.com/yifanrensheng/p/14352534.html
Copyright © 2020-2023  润新知