MySql-多表查询

2017-03-11  本文已影响432人  王纪山

多表查询分为以下几种:

        合并结果集:  UNION    UNION ALL

         连接查询

                                  内连接[INNER] JOIN  ON

                                  外连接OUTER JOIN   ON

                                           左外连接LEFT [OUTER] JOIN

                                           右外连接RIGHT [OUTER] JOIN

                                            全外连接(MySQL不支持)FULL JOIN

                                  自然连接NATURAL JOIN

         子查询   

1.合并结果集

     a. 作用:合并结果集就是把两个select语句的查询结果合并到一起

     b.合并结果集有两种方式:

          UNION:去除重复记录,例如:SELECT* FROM t1 UNION SELECT * FROM t2;

          UNIONALL:不去除重复记录,例如:SELECT * FROM  t1 UNION ALL  SELECT * FROM            t2;

   c.要求:被合并的两个结果:列数、列类型必须相同

2. 连接查询

     使用主外键关系做为条件来去除无用信息

     @内连接查询

     语法:

       select  表1.字段,表2.字段 。。。  from 表1,表2 where 表1.字段=表2.字段;

       这个方法就是内连接查询 ,但不是标准的内连接查询  那标准的内连接查询

      select *from 表1 a  inner join 表2 b on a.字段=b.字段;

    @外连接查询

@自然连接

@子查询

    概述:一个select语句中包含另一个完整的select语句。子查询就是嵌套查询,即SELECT中                   包含SELECT,如果一条语句中存在两个,或两个以上SELECT,那么就是子查询语句                 了

子查询出现的位置:

                  where后,作为条为被查询的一条件的一部分;

                   from后,作表;

当子查询出现在where后作为条件时,还可以使用如下关键字:

                 any

                 all

子查询结果集的形式:

                单行单列(用于条件)

               单行多列(用于条件)

               多行单列(用于条件)

               多行多列(用于表)

@自连接查询

上一篇 下一篇

猜你喜欢

热点阅读