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表的数据都返回

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


  • 相关阅读:
    PhpExcel笔记,phpExcel中文帮助手册
    mysql “group by ”与"order by"的研究--分类中最新的内容
    mysql中,主键与普通索引
    mysql性能优化-慢查询分析、优化索引和配置
    OpenSSL
    HAProxy
    Lighttpd
    Linux find/grep命令
    keepalived
    iptables
  • 原文地址:https://www.cnblogs.com/CatcherLJ/p/11812045.html
Copyright © 2011-2022 走看看