sql join示例
SQL的JOIN操作是将两个或更多表的行连接起来,生成一个新的关系(结果集)。JOIN在SQL查询中是最常见的操作之一,它往往需要处理连接、重复项和空值的问题。
SQL JOIN语句可以实现以下几种JOIN操作: INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)和 FULL OUTER JOIN(全连接)。本文将逐一介绍这些JOIN操作,并提供相关示例。
1. INNER JOIN(内连接)
INNER JOIN是最基本的JOIN操作之一,它只返回两个表中都存在的行,即两个表的交集。
示例一:查医生和其所在医院的信息。
假设我们有两个表,一个医生信息表(Doctors),一个医院信息表(Hospitals)。表结构如下:
表Doctors:
| ID | Name | HospitalID |
|----|------|------------|
| 1 | Tom | 1 |
| 2 | Jane | 2 |
| 3 | John | 1 |
| 4 | Mary | 3 |
表Hospitals:
可以使用内连接查询出医生和医院的信息:
SELECT Doctors.Name AS DoctorName, Hospitals.Name AS HospitalName
FROM Doctors
INNER JOIN Hospitals
ON Doctors.HospitalID = Hospitals.ID
结果如下:
可以看到,只保留了两个表中共有的记录。
join on是什么连接 LEFT JOIN 返回左表中所有的记录以及右表中与左表匹配的记录,左表中没有匹配的记录也会被输出,右表中没有匹配的记录会以NULL值显示。
使用LEFT JOIN查询:
可以看到,在左表中没有匹配到的记录(Alice的信息)在结果集中以NULL值显示。
由于MySQL不支持FULL OUTER JOIN,因此下面提供的示例使用UNION实现相同的效果。
UNION
可以看到,所有医生和所有医院的信息,包括没有医生或医院的记录,都被保留了下来,并用NULL值表示。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论