MySql-多表查询

多表查询分为以下几种:

        合并结果集:  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.字段;

    @外连接查询


MySql-多表查询_第1张图片
MySql-多表查询_第2张图片
MySql-多表查询_第3张图片

@自然连接

MySql-多表查询_第4张图片

@子查询

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

子查询出现的位置:

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

                   from后,作表;

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

                 any

                 all

子查询结果集的形式:

                单行单列(用于条件)

               单行多列(用于条件)

               多行单列(用于条件)

               多行多列(用于表)

@自连接查询

你可能感兴趣的:(MySql-多表查询)