码迷,mamicode.com
首页 > 其他好文 > 详细

多表查询

时间:2019-12-07 14:46:35      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:去除   理解   关键字   HERE   多个   sele   使用   select   需要   

多表查询:
    1 合并结果集
    select *from ab
    union //all
    select *from cd;
    使用合并结果集的条件,是结果集当中的列数和类型完全相同的时候才能够进行结果集的
合并。不带all的时候会将重复的结果去除。
    2 连接查询
    a 内连接
    使用内连接时,产生的查询的列数为m×n,叫做笛卡尔积。
    内连接的查询形式如下:(方言形式)
    select *
    from dept,emp
    where dept.deptno=emp.deptno
       使用条件来进行无用笛卡尔积的过滤,精简查询的结果。查询的过程当中使用表的
    别名来精简查询语句。
    
    内连接查询的(标准的形式)
    select e.ename,e.sal,d.dname
    from emp e inner join dept d
    on e.deptno=d.deptno
    
    内连接的查询的自然形式(很少使用,可读性较差)
    select e.ename,e.sal,d.dname
    from emp e natural join dept d
    使用自然连接的话,不需要自己添加笛卡尔积的过滤条件。数据库会找到两个
    表当中相同的列来进行自动的匹配和过滤。

    b 外连接
        外连接主要分为左外连接和右外连接两种形式,左表和右表分别作为
    主表。还有一种全外连接,但是Mysql不支持全外连接。可以通过合并结果
    集的方式来实现全外连接的代替。
        外连接可以将不满足条件的某些结果显示出来。具有一主一次的关系。
    主表当中的所有记录无论是否满足条件都要打印出来,次表当中的记录全
    使用null来进行填充。
    查询的形式如下:
    select e.name,e.sal,d.dname
    from emp e left/right outer join dept d
    on e.deptno=d.deptno
  

  3 子查询
        sql语句当中包含多个select关键字的查询叫做子查询。
    也可以理解成为使用上一次查询的结果进行再一次的查询,
    或者是在查询结果的基础上进行二次查询。对应的分别为出现
    在where后作为条件,在from后作为表。
    
    

   

多表查询

标签:去除   理解   关键字   HERE   多个   sele   使用   select   需要   

原文地址:https://www.cnblogs.com/wangkaia/p/12001448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!