mysql join连接

纵饮孤独 提交于 2019-11-30 17:31:40

连接类型

  分为三种:交叉连接、内连接、外连接。

交叉连接 cross join

  没有where子句的交叉连接将产生连接表的笛卡尔积,等同于inner join。

        select * from R cross join S;

内连接

  内连接分为三种:自然连接、等值连接、非等值连接。

  自然连接 natural join:在连接条件中使用等于=运算符比较被连接列的列值,但删除连接表中重复列。

  select * from R natural join S;

        等值连接 :使用等于=比较连接列的列值,在查询结果中列出接连表中的所有列,包括其中的重复列。

  select * from R join S where R.C = S.C;

  或

  select * from R inner join S where R.C = S.C;

    

        非等值连接 :在连接条件中,可以使用其他比较运算符,比较被连接列的列值,如:<、>、!=等。

外连接

外连接分为三类:全外连接、左外连接、右外连接。

  左外连接 left join / left outer join

  select * from R left join S on R.C = S.C;

        左外连接要遍历左表的所有记录,右表没有的用null表示。

  右外连接 right join / right outer join

  select * from R right join S on R.C = S.C;

       右外连接要遍历右表所有的记录,左表没有的用null表示。

  全外连接 full join / full outer join

  select * from R full join S on R.C = S.C;

        全连接产生的所有记录(双方匹配记录)在表R和表S。如果没有匹配,则对面将包含null。

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!