MySQL连接查询

MySQL连接查询

一、内连接查询
  • 关键字:INNER JOIN

  • 语句:语句:SELECT 查询列表 FROM 表1 别名 INNER JOIN 表2 别名 ON 连接条件;

  • 说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集部分。

  • 案例:使用内连接关联线路表与车辆表

  • 线路表:线路表

  • 车辆表:

  • 车辆表

  • 查询结果如下:

  • 运行结果

二、自然连接
  • 关键字:NATURAL JOIN
  • 语句:SELECT 查询列表 FROM 表1 NATURAL JOIN 表2;
  • 说明:自然连接是一种特殊的等值连接,要求两个关系表中进行连接的必须是相同的属性列(名字相同),无须添加连接条件,并且在结果中消除重复的属性列。
  • 案例:使用自然连接获取公交六公司的线路和车辆信息
  • 线路表:
  • 线路表
  • 车辆表:
  • 车辆表
  • 查询结果如下:
  • 运行截图
三、多表连接查询

1.多表连接查询方法

  • 语句:SELECT 查询列表 FROM 表名1 JOIN 表名2 ON 表名1.字段名1=表名2.字段名2_1 JOIN 表名3 ON 表名2.字段名2_2=表名3.字段3
  • 案例:使用多表连接查询获取公交二公司所有司机信息。要求输出司机姓名、身份证、性别和电话
  • 线路表:
  • 线路表
  • 车辆表:
  • 车辆表
  • 司机表:
  • 司机表
  • 查询结果如下:
    运行结果

2.简单多表连接查询

  • 语句:SELECT 查询列表 FROM 表名1,表名2 WHERE 表名1.字段名1=表名2.字段名2【AND 其他条件】;
  • 案例:使用简单多表连接查询获取订单 ID 为 4 的订购明细信息,要求输出商品名、单价和件数。
  • 订单表:在这里插入图片描述
  • 订单明细表:在这里插入图片描述
  • 商品表:在这里插入图片描述
  • 查询结果如下:
  • 在这里插入图片描述
四、外连接查询

1.外连接

  • 语句:SELECT 字段名称 FROM 表名1 LEFT | RIGHT | FULL JOIN 表名2 ON 表名1.字段名1=表名2.字段名2;
  • 应用场景:用于查询一个表中有,另一个表没有的记录
  • 特点:外连接的查询结果为主表中的所有记录,如果从表中有和它匹配的,则显示匹配的值,如果从表中没有和它匹配的,则显示null,外连接查询结果=内连接结果+主表中有而从表没有的记录

2.左连接

  • 关键字:LEFT JOIN ON
  • 语句:SELECT * FROM 表1 LEFT JOIN 表2 ON 表名1.字段名1=表名2.字段名2;
  • 说明:left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。 左(外)连接,左表(表名1)的记录将会全部表示出来,而右表(表名2)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
  • 案例:使用左外连接查询所有非空调车的车牌号、型号、线路号、起点站和终点站
  • 车辆表
  • 在这里插入图片描述
  • 线路表
  • 在这里插入图片描述
  • 查询结果如下:
  • 在这里插入图片描述

3.右链接

  • 关键字:RIGHT JOIN ON
  • 语句:SELECT * FROM 表1 RIGHT JOIN 表2 ON 表名1.字段名1=表名2.字段名2;
  • 说明:right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。
  • 案例:使用右外连接获取所有客户的基本信息以及订购信息,要求输出客户姓名、电话、订单 ID 和下单时间。
  • 订单表:在这里插入图片描述
  • 客户表:
  • 在这里插入图片描述
  • 查询结果如下:
  • 在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值