zoukankan      html  css  js  c++  java
  • mysql 多表连接

    现有表R,S如下:



    笛卡尔积

    select * from R,S;

    结果:


    注:不需要任何条件。结果为两张表函数相乘(3x3=9)。

    自连接

    select e.empno,e.ename,m.empno,m.ename from emp e,emp m where m.mgr = e.empno; 

    连接类型

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

    交叉连接 cross join

    没有where子句的交叉连接将产生连接表的笛卡尔积。

    select * from R cross join S;

    结果:和笛卡尔积一样,如上图。

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

    结果:


    内连接

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

    自然连接 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;

  • 相关阅读:
    一周进度条博客
    4.8地铁查询开发进度
    4.7地铁查询开发进度
    4.6地铁查询系统开发进度
    大二下第六周学习进度报告
    4.5地铁查询系统开发进度2
    《构建之法》阅读笔记03
    石家庄地铁查询系统开发进度
    《构建之法》阅读笔记02
    大二下第五周学习笔记
  • 原文地址:https://www.cnblogs.com/caozengling/p/5295500.html
Copyright © 2011-2022 走看看