MySQL连接的使用

为什么要有连接

在实际使用创建表的时候我们不可能将所有的信息都放在一个表中,也就是不同的信息会放在不同的表中,所以我们最终需要的信息

可能在多个表中,这就需要我们使用连接来查询我们想要的信息。

有几种连接

一般情况下我们主要使用下面三种连接:

  1. INNER JOIN(等值连接):获取两个表中字段匹配关系的记录。

  2. LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。

  3. RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

使用连接的一般思路

  1. 首先要分析我们需要的数据存在哪些表中;

  2. 找到这些表中关联的数据列,没有关联的数据列的话一般不能进行连接查询;

  3. 确定使用哪种连接方式;

  4. 编写查询语句测试;

假设我们有下面的两个表:
student表:

id name
1 h
2 j
3 k
4 l
5 m
6 n
7 o

grade表:

id grade
1 88
2 90
3 87
4 85

下面来看三种查询的结果:

  1. INNER JOIN
select a.id,a.name,b.grade
from student as a
inner join grade as b
on a.id=b.id;

结果为:

id name grade
1 h 88
2 j 90
3 k 87
4 l 85
  1. LEFT JOIN
select a.id,a.name,b.grade
from student as a
left join grade as b
on a.id=b.id;

结果为:

id name grade
1 h 88
2 j 90
3 k 87
4 l 85
5 m NULL
6 n NULL
7 o NULL
  1. RIGHT JOIN
select a.id,a.name,b.grade
from student as a
right join grade as b
on a.id=b.id

结果为:

id name grade
1 h 88
2 j 90
3 k 87
4 l 85

其中的左右表是根据放在join的左右来定义的。

原文地址:https://www.cnblogs.com/noob-l/p/13274038.html