码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL学习笔记 (三)JOIN用法

时间:2016-05-08 13:30:31      阅读:402      评论:0      收藏:0      [点我收藏+]

标签:

  数据库的操作分开增删改查,其中查询操作基本占系统的90%,大家所说的优化SQL语句基本是优化查询语句。接下来将学习JOIN的用法,JOIN包括:INNER JOIN(内连接)、LEFT JOIN(左外连接)、RIGHT JOIN(右外连接)、FULL JOIN(全外连接)、CROSS JOIN(交叉连接)。在说明之前,先创建user、schoolMap、school三个表以便实验需要。

    技术分享

    技术分享

    技术分享

1、INNER JOIN

  1)、INNER JOIN返回两个表中联结字段相等的行,即两个表中联结字段都存在并且相等。

  2)、INNER 连接二个数据表的语法:

      SELECT * FROM 表A INNER JOIN 表B ON 表A.字段 = 表B.字段;

  3)、示例:

    技术分享

 

  4)、INNER JOIN 连接三个数据表的用法:

    SELECT * FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号

    连接多个表以此类推

 

  5)、INNER JOIN使用的时候若不加ON条件等价于FULL JOIN不不加ON条件 、CROSS JOIN

    技术分享

    技术分享

    技术分享

    6、INNER INTO 后面的查询的条件加在ON后面和WHERE效果是一样的

    技术分享

2、LEFT JOIN(左外连接) 

  1)、LEFT JOIN返回包括左表中的所有记录和右表中联结字段相等的记录。

  2)、LEFT JOIN连接二个数据表的语法:

      SELECT * FROM 表A LEFT JOIN 表B ON 表A.字段 = 表B.字段;

  3)、LEFT JOIN示例:

    技术分享

  4)、LEFT JOIN 连接三个数据表的用法:

    SELECT * FROM (表1 LEFT JOIN 表2 ON 表1.字段号=表2.字段号) LEFT JOIN 表3 ON 表1.字段号=表3.字段号

    连接多个表以此类推

3、RIGHT JOIN(右外连接) 

  1)、RIGHT JOIN返回包括右表中的所有记录和左边表中联结字段相等的记录。

  2)、RIGHT JOIN连接二个数据表的语法:

      SELECT * FROM 表A RIGHT JOIN 表B ON 表A.字段 = 表B.字段;

  3)、RIGHT JOIN示例:

    技术分享

 

  4)、RIGHT JOIN 连接三个数据表的用法:

 

    SELECT * FROM (表1  RIGHT JOIN 表2 ON 表1.字段号=表2.字段号) RIGHT JOIN 表3 ON 表1.字段号=表3.字段号

 

    连接多个表以此类推

4、FULL JOIN

  MYSQL 不支持FULL JOIN 通过LEFT JOIN 与 RIGHT JOIN 来实现

  用法:

    select * from A left join B on A.id = B.id (where 条件)
    union
    select * from A right join B on A.id = B.id (where条件);

 

MYSQL学习笔记 (三)JOIN用法

标签:

原文地址:http://www.cnblogs.com/huixuexidezhu/p/5470411.html

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