MYSQL连接查询

Posted C小杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL连接查询相关的知识,希望对你有一定的参考价值。

(一)连接

  1. 概念
    查询信息的来源如果来自多张表,则必须对这些表进行连接查询。
    连接是把不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进行处理。
    连接查询分为内连接和外连接。

(二)内连接查询

  1. 概念:内连接基于连接谓词,它将两张表 的列组合在一起,产生新的结果表。
    内连接分 3 种:交叉连接、相等连接和自然连接。
  2. 语法
SELECT fieldlist 
FROM table1 
[INNER] JOIN table2 
ON table1.column1=table2.column2
[where condition]
  1. 示例
select * 
from line 
join vehicle 
on line.lineID=vehicle.lineID

(三)多表连接查询

  1. 概念:如果查询的信息来源于多张表,则可通过两两相连的方式建立多表连接查询。
  2. 三表连接语法:
SELECT fieldlist 
FROM table1 
JOIN table2 
ON table1.column1=table2.column2_1 
JOIN table3 
ON table2.column2_2=table3.column3 
[where condition]
  1. 示例
select name 司机姓名 , plateNo 车牌号 , model 型号 , lineNo 线路号 , from_station 起点站 , end_station 终点站 
from vehicle V 
join Driver D 
on V.driverID=D.driverID
join line L 
on V.lineID=L.lineID 
 where type=' 非空调车 ';

(四)外连接查询(LEFT JOIN)

  1. 概念:左外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为 null。
  2. 语法
SELECT 字段名称 
FROM 表名 1 
LEFT|RIGHT|FULL [OUTER] JOIN 表名 2
ON 表名 1. 字段名 1= 表名 2. 字段名 2
  1. 示例
select plateNo 车牌号 , model 型号 , lineNo 线路号 , from_station 起点站 , end_station 终点站
from vehicle V  
left join line L 
on V.lineID=L.lineID 
where type=' 非空调车 ';

(五)右外连接查询(RIGHT JOIN)

  1. 概念:右外连接是左外连接的反向连接。右外连接的结果集包括右表的所有记录和左表中满足连接条件的记录,结果集中那些不符合连接条件的来源于左表的列值为 null。
  2. 示例
select plateNo 车牌号 , model 型号 , lineNo 线路号 , from_station 起点站 , end_station 终点站
from vehicle V  
right join line L 
on V.lineID=L.lineID

以上是关于MYSQL连接查询的主要内容,如果未能解决你的问题,请参考以下文章

公交查询系统的设计之详细设计程序流程图(2)

高德导航中怎么计算起点和终点之间行程的距离

百度地图怎么获取起点与终点之间的线路 js

团队项目计划会议

百度地图为啥不能任意设置起点和终点

qt新建word失败