数据库学习一:left join & right join & inner join

一.内外连接

  1. 内连接:inner join。只显示各表之间与关联条件(on)相匹配的列。
  2. 外连接:
    1. left join。以左表为基础。显示左表所有 记录,不管是否与关联条件(on)相匹配;而右表只显示与关联条件相匹配的记录,不匹配的以null字符代替。如果右表多条数据关联到左表的一条数据,left join会查出多条。
    2. right join。以右表为基础。显示右表所有记录,不管是否与关联条件(on)相匹配;而左表只显示与关联条件相匹配的记录,不匹配的以null字符代替。
    3. full join。全连接。显示列表中的所有列,不匹配的以null字符代替。Mysql不支持full join,用left join union right代替。

               a表                                           b表

              a left join b  数据库学习一:left join & right join & inner join

              a right join b数据库学习一:left join & right join & inner join

              a full join b  数据库学习一:left join & right join & inner join

 

 

二. where 与 on

  1. on:关联条件。
  2. where:查询条件。

     a left join b where  数据库学习一:left join & right join & inner join

     a right join b where数据库学习一:left join & right join & inner join

 

 

三. where 与 inner join

     a inner join b数据库学习一:left join & right join & inner join

     a b where    数据库学习一:left join & right join & inner join

  1. WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。
  2. INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接。
  3. WHERE 和INNER JOIN产生的连接关系,没有本质区别,结果也一样。隐性连接随着数据库语言的规范和发展,已经逐渐被淘汰,比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。

你可能感兴趣的:(JOIN,right)