zoukankan      html  css  js  c++  java
  • left join VS right join;inner join VS full join

    关于笛卡尔积

    现有a,b两张数据表,a有3条数据,b有5条数据

    select * from a,b; 这个结果将是a的记录数 × b的记录数 = 15条数据,

    1.inner join(内连接),在两张表进行连接查询时,只保留两张表中完全匹配的结果集。

    select * from a,b where a.id = b.id 等价于 select * from a inner join b on a.id = b.id,但推荐使用

    2.left join,在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。

    SELECT * FROM a LEFT JOIN b ON a.id=b.id ; //a表数据全部返回

    3.right join,在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。

    SELECT * FROM a RIGHT JOIN b ON a.id=b.id ; //b表数据全部返回

    4.full join,在两张表进行连接查询时,返回左表和右表中所有没有匹配的行。

    SELECT * FROM a FULL JOIN b ON a.id=b.id ; //a,b表的数据都返回

    根据工作中遇到的情况,来选择不同的连接方式。左连接并不是万能的,一开始思路清晰的敲代码,将会避免很多的坑!


  • 相关阅读:
    httphelper
    MD5加密
    json操作
    将list转成tree
    GenerateId类:生成唯一id、订单号
    加密、解密(默认密钥向量)
    Hadoop HDFS批量处理
    OceanBase学习总结
    TiDB学习
    开机自启动rc.local文件修改权限
  • 原文地址:https://www.cnblogs.com/CatcherLJ/p/11812045.html
Copyright © 2011-2022 走看看