当前位置:首页 > MySQL > 正文内容

MySQL中INNER JOIN详解

flowstone6年前 (2019-05-19)MySQL495

前言

MySQL中联合查询有join、inner join、left join、right join、full join这五种组成。join和inner join是相等的。一般涉及到多张数据表之前的关联查询,必须要用连接操作符。本次来讲讲inner join的使用。


使用

首先,为了能够形象的展示Inner join的效果,创建两张相关联的数据表,学生表和成绩表

学生表创建语句如下:

create table student(    
    id int not null auto_increment,    
    name varchar(64) not null default '' comment '姓名',
    primary key(id)
 ) charset=utf8mb4 comment '学生表';


成绩表创建语句如下:

create table score(    id int not null auto_increment,
    student_id varchar(64) not null default '' comment '学生id',
    chinese varchar(4) not null default '' comment '中文',
    primary key(id)
 ) charset=utf8mb4 comment '学生表';

学生表的数据如下:

IDNAME
1小明
2小华
3小丽
4

成绩表数据如下

IDSTUDENT_IDCHINESE
1189
2278
3364
4596
问题1: 查询有成绩的学生信息

步骤1

查询两个表连接的数据

select * from student inner join score


结果如下:

 查询结果

这个结果有许多相同的数据,这个情况叫做笛卡尔积,如何避免笛卡积,需要在内连接查询上添加查询条件就可以解决这个问题。

步骤2

查询两个表连接的数据带条件

select s.id,s.name,sc.chinese  from student s inner join score sc on s.id = sc.student_id


查询的结果如下:

 查询结果

从上图中,可以看到没有小花的成绩数据,因为内连接只会显示两个表中都有的数据。用集合的方式来说就是取两个表数据的交集。

总结 开发中常常会查询相关联的数据,并且查询中只保留两表中共有的数据,这样就可以使用inner join来关联查询。


扫描二维码推送至手机访问。

版权声明:本文由薛尧的博客发布,如需转载请注明出处。

本文链接:https://flowstone.sourceforge.io/?id=35

分享给朋友:
返回列表

没有更早的文章了...

没有最新的文章了...

相关文章