• sql的交叉连接,内连接,左外连接,右外连接,全外连接总结


    实践是最好的检验,一直都对这几个连接查询出来的结果有什么不同不大理解,然后自己放一块查询比较了一下,用结果来说话~
    先建两张表如下:
    t1:
    id  name  age
    1  张三   18
    2  李四   25

    t2:
    id  name  age
    1  王五    25
    2  大白   30

    1.交叉连接:也叫笛卡尔积
    select * from t1 cross join t2; /*不带查询条件的交叉连接/
    select * from t1 ,t2;/*这样默认是cross join/
    select * from t1 cross join t2 where t1.age = t2.age;/*带查询条件的交叉连接,但是不能用on连接子句,只能用where /
    查询结果

    2.内连接:查询结果是t1和t2的公有部分
    select * from t1 inner join t2 on t1.age = t2.age;
    这里写图片描述
    可以看出当查询条件一样时交叉连接和内连接的查询结果一样,只不过交叉连接使用where子句作查询条件 而内连接用on子句作查询条件

    3.左外连接:查询结果是左表的其它部分 再加上t1和t2的公有部分(这里左表即t1)
    select * from t1 left join t2 on t1.age = t2.age;
    这里写图片描述

    3.右外连接:查询结果是t1和t2的公有部分 再加上右表的其它部分(这里右表即t2)
    select * from t1 right join t2 on t1.age = t2.age;
    这里写图片描述

    4.全外连接:查询结果是t1和t2的公有部分 再加上左表和右表的其它部分
    select * from t1 full join t2 on t1.age = t2.age;
    这里写图片描述

    注:

    1.hibernate中用.关联的是一个实体或组件是默认是采用交叉连接,但是不能关联一个集合,否则报错。所以在hibernate中对于集合我们要显示使用内连接。

    2.若将两个表的结果连接起来则用union。

  • 相关阅读:
    在awk里引用shell变量(支持正则)
    python模块pyautogui
    一个完整的搜索系统
    信息检索笔记(9)再论文档评分
    信息检索导论学习笔记(8)向量空间模型
    搜索引擎查询扩展
    信息检索笔记(10)Lucene文档评分机制
    Lucene的分析过程
    信息检索导论学习笔记(7)文档评分、词项权重计算
    信息检索导论学习笔记(5)
  • 原文地址:https://www.cnblogs.com/ziysong/p/4652928.html
Copyright © 2020-2023  润新知