美文网首页
连接查询

连接查询

作者: Lijy_李俊阳 | 来源:发表于2019-05-19 21:54 被阅读0次

    1.分类

    • 内连接
      等值
      非等值
      自连接
    • 外连接
      左外
      右外
      全外(mysql不支持)

    2.语法

    1、内连接

    语法:
    select 查询列表
    from 表1 别名
    【inner】 join 表2 别名 on 连接条件
    where 筛选条件
    group by 分组列表
    having 分组后的筛选
    order by 排序列表
    limit 子句;

    特点:
    ①表的顺序可以调换
    ②内连接的结果=多表的交集
    ③n表连接至少需要n-1个连接条件

    分类:
    等值连接
    非等值连接
    自连接

    2、外连接

    语法:
    select 查询列表
    from 表1 别名
    left|right|full【outer】 join 表2 别名 on 连接条件
    where 筛选条件
    group by 分组列表
    having 分组后的筛选
    order by 排序列表
    limit 子句;
    特点:
    ①查询的结果=主表中所有的行,如果从表和它匹配的将显示匹配行,如果从表没有匹配的则显示null
    ②left join 左边的就是主表,right join 右边的就是主表
    full join 两边都是主表
    ③一般用于查询除了交集部分的剩余的不匹配的行

    3、交叉连接

    语法:
    select 查询列表
    from 表1 别名
    cross join 表2 别名;

    特点:
    类似于笛卡尔乘积

    多表连接

    • 连接 n个表,至少需要 n-1个连接条件。 例如:连接
      三个表,至少需要两个连接条件
      例如:
    #两表关联后作为一张新表再join  on第三张表
    SELECT employee_id, city, department_name
    FROM employees e 
    JOIN departments d
    ON d.department_id = e.department_id 
    JOIN locations l
    ON d.location_id = l.location_id;
    

    Join连接总结

    image.png
    SELECT <select_list>
    FROM A 
    LEFT JOIN B 
    ON A.key=B.key
    
    image.png
    SELECT <select_list>
    FROM A 
    RIGHT JOIN B 
    ON A.key=B.key
    
    image.png
    #1.内连接
    SELECT <select_list>
    FROM A 
    INNER JOIN B 
    ON A.key=B.key
    #2.where 
    select <select_list>
    FROM table1 A,table2 B
    WHERE A.key=B.key
    
    
    image.png
    SELECT <select_list>
    FROM A 
    LEFT JOIN B 
    ON A.key=B.key
    WHERE B.key is null;
    
    image.png
    SELECT <select_list>FROM A 
    RIGHT JOIN B 
    ON A.key=B.keyWHERE A.key is null;
    

    相关文章

      网友评论

          本文标题:连接查询

          本文链接:https://www.haomeiwen.com/subject/zjhczqtx.html