MYSQL连接查询
Posted C小杰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL连接查询相关的知识,希望对你有一定的参考价值。
(一)连接
- 概念
查询信息的来源如果来自多张表,则必须对这些表进行连接查询。
连接是把不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进行处理。
连接查询分为内连接和外连接。
(二)内连接查询
- 概念:内连接基于连接谓词,它将两张表 的列组合在一起,产生新的结果表。
内连接分 3 种:交叉连接、相等连接和自然连接。 - 语法
SELECT fieldlist
FROM table1
[INNER] JOIN table2
ON table1.column1=table2.column2
[where condition]
- 示例
select *
from line
join vehicle
on line.lineID=vehicle.lineID
(三)多表连接查询
- 概念:如果查询的信息来源于多张表,则可通过两两相连的方式建立多表连接查询。
- 三表连接语法:
SELECT fieldlist
FROM table1
JOIN table2
ON table1.column1=table2.column2_1
JOIN table3
ON table2.column2_2=table3.column3
[where condition]
- 示例
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)
- 概念:左外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为 null。
- 语法
SELECT 字段名称
FROM 表名 1
LEFT|RIGHT|FULL [OUTER] JOIN 表名 2
ON 表名 1. 字段名 1= 表名 2. 字段名 2
- 示例
select plateNo 车牌号 , model 型号 , lineNo 线路号 , from_station 起点站 , end_station 终点站
from vehicle V
left join line L
on V.lineID=L.lineID
where type=' 非空调车 ';
(五)右外连接查询(RIGHT JOIN)
- 概念:右外连接是左外连接的反向连接。右外连接的结果集包括右表的所有记录和左表中满足连接条件的记录,结果集中那些不符合连接条件的来源于左表的列值为 null。
- 示例
select plateNo 车牌号 , model 型号 , lineNo 线路号 , from_station 起点站 , end_station 终点站
from vehicle V
right join line L
on V.lineID=L.lineID
以上是关于MYSQL连接查询的主要内容,如果未能解决你的问题,请参考以下文章