MySql查询语句介绍,多表联合查询

mysql在网站开发中,越来越多人使用了,方便部署,方便使用。我们要掌握mysql,首先要学习查询语句。查询单个表的数据,和多个表的联合查询。
上一篇写了【MySql查询语句介绍,单表查询】,下面以一些例子来介绍下多表联合查询。

操作方法

  • 01

    首先看下我们例子用到的数据表,一个student学生表,有id列,name列,class_id列等等。和一个Class班级表,有id列和name列,如图

  • 02

    我们要查询学生数据,并要显示这个学生所在的班级,则要联合二个表的查询了。用 inner join来联合二个表。 sql: select s.id, s.name, c.`name` as '班级' from student as s inner join class as c ON c.id = s.class_id limit 10

  • 03

    讲解下上面的sql语句, select里的【as '班级'】,的‘as’是为了给这个列加一个别名,例子中的‘班级’。 from student as s 里的这个 as是为表 student加一个别名,例子中的s。 为什么要加别名呢,是为了简化引用,如果不加别名,就要用表的全名去限制列名。 s.id, s.name都是指student表的列,因为用的是别名s来限制列名 c.name 是指class表的列,因为是用 别名c来限制列名。

  • 04

    上面说的为什么表要加别名,那是因为二个表都有 id列和name列,直接用 select id, name这样的语句,是会报错的,因为这个语句不知道你需要的id, name究竟是查询的是哪个表的id, 和name.

  • 05

    除了用 inner join来关联二个表的数据,还可以用 left join来关联, sql: select s.id, s.name, c.`name` as '班级' from student as s left join class as c ON c.id = s.class_id order by s.id desc limit 10

  • 06

    现在的数据,看不出 inner join和 left join的区别。我们新建一个学生数据, 把class_id设置为 7, class表里没有的id。如图

  • 07

    我们再次用上次的sql查询数据, select s.id, s.name, c.`name` as '班级' from student as s left join class as c ON c.id = s.class_id order by s.id desc limit 10 结果如图,可以看到班级为空的。

  • 08

    如果是用 inner join呢, select s.id, s.name, c.`name` as '班级' from student as s inner join class as c ON c.id = s.class_id order by s.id desc limit 10 结果如图,可以看到没有 id=27的学生数据。

  • 09

    从上面的结果比较可以知道, 都是通过 class_id来联合表, inner join是联合二个表的数据,二个表都必须符合class_id的数据才显示。 left join是左联合,左边的表的数据都显示,右边join的表有符合class_id数据的,就显示对应的数据,没有符合的,比如上面的 class_id=7的,就会显示空数据。

(0)

相关推荐

  • MySql查询语句介绍,单表查询

    mysql在网站开发中,越来越多人使用了,方便部署,方便使用.我们要掌握mysql,首先要学习查询语句.查询单个表的数据,和多个表的联合查询. 下面以一些例子来先简单介绍下单表查询. 操作方法 01 ...

  • Mysql如何多表连接查询

    Mysql数据库是web开发中最常用的数据库之一,mysql多表查询是开发人员必备的技能,本期就教大家如何双表连接查询以及三表连接查询 操作方法 01 我有一张表名为sc_comd的表和sc_deta ...

  • Mysql常见子查询语句

    常见子查询语句 形式: where  字段  比较运算符  (标量子查询): 因为其相当于: where  字段  比较运算符  一个具体值:  //比如:where  age > 18 使用i ...

  • Access联合查询同一类型的两个表合二为一的实例

    两个或多个相同类型或表头的Access的.mdb或.accdb,如何合并为一个表显示.今天实例为大家演示. 操作方法 01 首先打开需要处理的数据库 02 了解下表名 03 以及表结构,后新建查询 0 ...

  • MySql数据更改语句介绍

    mysql在网站开发中,越来越多人使用了,方便部署,方便使用.之前做了一些查询语句的介绍.今天来介绍一些更改数据的语句. 操作方法 01 首先看下我们例子用到的数据表,一个student学生表,有id ...

  • 使用ActiveReports报表设计器绑定联合查询报表

    使用ActiveReports报表设计器绑定联合查询报表 操作方法 01 联合查询报表 ActiveReportsServer报表系统支持市场上现有的任何数据库管理系统,诸如Oracle,SQL Se ...

  • SQL server数据库查询语句使用方法详细讲解

    一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为 ...

  • 预防查询语句数据库注入漏洞攻击

    简单地说,Sql注入就是将Sql代码传递到应用程序的过程,但不是按照应用程序开发人员预定或期望的方式插入,相当大一部分程序员在编写代码的时候,并没有对用户输入数据的合法性进行判断,使应用程序存在安全隐 ...

  • SQL SELECT 查询语句

    SELECT 语句用于从表中选取数据.SELECT查询语句也是最常使用的,使用形式也最丰富,查询的结果会被存储在一个结果表中(称为结果集) 操作方法 01 语法一:查询表的指定列 SELECT 列名称 ...