欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN

程序员文章站 2022-07-09 19:46:20
一、内连接(INNER JOIN) 获取两个表中字段匹配关系的记录,需要两个表都满足条件的数据才会返回。如下图阴影部分所示区域。 实例:有一张表table_a,数据如下: 表table_b,数据如下: 内连接SQL(也可以省略INNER,直接用JOIN): SELECT a.aid, a.aname ......

 

一、内连接(inner join)

获取两个表中字段匹配关系的记录,需要两个表都满足条件的数据才会返回。
如下图阴影部分所示区域。

MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN

 

实例:
有一张表table_a,数据如下:

MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN

表table_b,数据如下:

MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN

内连接sql(也可以省略inner,直接用join):

select a.aid, a.aname, b.bid, b.bname from table_a as a inner join table_b as b on a.aid = b.bid;

  MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN

 

二、左连接(left join)

左表为主表,获取左表的所有记录,即使右表没有对应匹配的记录,右表没有匹配的记录字段会返回null,如下图阴影部分所示区域。

MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN

 

左连接sql:

select a.aid, a.aname, b.bid, b.bname from table_a as a left join table_b as b on a.aid = b.bid;

  MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN

 

三、右连接(right join)

右连接和左连接正好相反,右连接以右表为主表,用于获取右表所有记录,即使左表没有对应匹配的记录,左表没有匹配的记录字段会返回null,如下图阴影部分所示区域。

MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN

右连接sql:

select a.aid, a.aname, b.bid, b.bname from table_a as a right join table_b as b on a.aid = b.bid;

  MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN