mysql中join用法解析
实例数据库如下:
student表:
mysql> select * from student;
+-----------+-----------+------+------+-------+
| sno | sname | ssex | sage | sdept |
+-----------+-----------+------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs |
| 201215122 | 刘晨 | 女 | 19 | cs |
| 201215123 | 王敏 | 女 | 18 | ma |
| 201215125 | 张立 | 男 | 19 | is |
| 201215128 | 陈冬 | 男 | 18 | is |
| 201215126 | 张成民 | 男 | 18 | cs |
+-----------+-----------+------+------+-------+6 rows in set (0.00 sec)
sc表:
mysql> select * from sc;
+-----------+------+-------+
| sno | cno | grade |
+-----------+------+-------+
| 201215121 | 1 | 92 |
| 201215121 | 2 | 85 |
| 201215121 | 3 | 88 |
| 201215122 | 2 | 90 |
| 201215122 | 3 | 80 |
| 201215128 | 1 | 78 |
+-----------+------+-------+6 rows in set (0.00 sec)
left join(左连接)
sql语句如下:
select * from student left join sc on student.sno=sc.sno;
运行结果如下:
+-----------+-----------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+-----------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null | null |
+-----------+-----------+------+------+-------+-----------+------+-------+
在此例中left join 是以student表中的记录为基础,student表可以看成左表,sc表可以看成右表,左表中的记录会完全显示出来,加上匹配到的右表,如果左边没有匹配到,则其余部分显示为null。
using字句using字句和on字句,类似,但结果略有不同。
例如:
mysql> select student.sno,sname,grade from student left join sc on student.sno=sc.sno;
+-----------+-----------+-------+
| sno | sname | grade |
+-----------+-----------+-------+
| 201215121 | 李勇 | 92 |
| 201215121 | 李勇 | 85 |
| 201215121 | 李勇 | 88 |
| 201215122 | 刘晨 | 90 |
| 201215122 | 刘晨 | 80 |
| 201215128 | 陈冬 | 78 |
| 201215123 | 王敏 | null |
| 201215125 | 张立 | null |
| 201215126 | 张成民 | null |
+-----------+-----------+-------+
9 rows in set (0.00 sec)
以上等价于
select sno,sname,grade from student left join sc using(sno);
+-----------+-----------+-------+
| sno | sname | grade |
+-----------+-----------+-------+
| 201215121 | 李勇 | 92 |
| 201215121 | 李勇 | 85 |
| 201215121 | 李勇 | 88 |
| 201215122 | 刘晨 | 90 |
| 201215122 | 刘晨 | 80 |
| 201215128 | 陈冬 | 78 |
| 201215123 | 王敏 | null |
| 201215125 | 张立 | null |
| 201215126 | 张成民 | null |
+-----------+-----------+-------+
不同的地方,例如:
select * from student left join sc on student.sno=sc.sno;
+-----------+-----------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+-----------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null | null |
+-----------+-----------+------+------+-------+-----------+------+-------+
select * from student left join sc using (sno);
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
重复的sno列,如果用on字句会被输出两次
right join(右连接)同left join,只不过以右表为基础,例如:
select * from student right join sc using (sno);
+-----------+------+-------+--------+------+------+-------+
| sno | cno | grade | sname | ssex | sage | sdept |
+-----------+------+-------+--------+------+------+-------+
| 201215121 | 1 | 92 | 李勇 | 男 | 22 | cs |
| 201215121 | 2 | 85 | 李勇 | 男 | 22 | cs |
| 201215121 | 3 | 88 | 李勇 | 男 | 22 | cs |
| 201215122 | 2 | 90 | 刘晨 | 女 | 19 | cs |
| 201215122 | 3 | 80 | 刘晨 | 女 | 19 | cs |
| 201215128 | 1 | 78 | 陈冬 | 男 | 18 | is |
+-----------+------+-------+--------+------+------+-------+
inner join(相等连接或内连接)
不会显示以谁为基础,只会显示符合条件的记录
select * from student inner join sc on student.sno=sc.sno;
+-----------+--------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+--------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
+-----------+--------+------+------+-------+-----------+------+-------+
以上语句等同于:
select * from student,sc where student.sno=sc.sno;
+-----------+--------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+--------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
+-----------+--------+------+------+-------+-----------+------+-------+
扩展如果只想从a表中取出一些记录,但不包含b表
可以在left join 后面加上一个where语句
select * from student left join sc using(sno) where sc.sno is null;
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
求差集
可以结合union字句,由于本例中,右侧的已经全部对应的所以显示结果,和上一个一致。
select * from student left join sc using(sno) where student.sno is null union
select * from student left join sc using(sno) where sc.sno is null;
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
full join
select * from student left join sc on student.sno=sc.sno union select * from student right join sc on student.sno=sc.sno;
+-----------+-----------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+-----------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null | null |
+-----------+-----------+------+------+-------+-----------+------+-------+
注:a left join b 等同于 b right join a
mysql> select * from student left join sc using(sno);
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
9 rows in set (0.00 sec)mysql> select * from sc right join student using(sno);
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
mysql中join用法解析实例数据库如下:
student表:
mysql> select * from student;
+-----------+-----------+------+------+-------+
| sno | sname | ssex | sage | sdept |
+-----------+-----------+------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs |
| 201215122 | 刘晨 | 女 | 19 | cs |
| 201215123 | 王敏 | 女 | 18 | ma |
| 201215125 | 张立 | 男 | 19 | is |
| 201215128 | 陈冬 | 男 | 18 | is |
| 201215126 | 张成民 | 男 | 18 | cs |
+-----------+-----------+------+------+-------+
6 rows in set (0.00 sec)
sc表:
mysql> select * from sc;
+-----------+------+-------+
| sno | cno | grade |
+-----------+------+-------+
| 201215121 | 1 | 92 |
| 201215121 | 2 | 85 |
| 201215121 | 3 | 88 |
| 201215122 | 2 | 90 |
| 201215122 | 3 | 80 |
| 201215128 | 1 | 78 |
+-----------+------+-------+
6 rows in set (0.00 sec)
left join(左连接)
sql语句如下:
select * from student left join sc on student.sno=sc.sno;
运行结果如下:
+-----------+-----------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+-----------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null | null |
+-----------+-----------+------+------+-------+-----------+------+-------+
在此例中left join 是以student表中的记录为基础,student表可以看成左表,sc表可以看成右表,左表中的记录会完全显示出来,加上匹配到的右表,如果左边没有匹配到,则其余部分显示为null。
using字句using字句和on字句,类似,但结果略有不同。
例如:
mysql> select student.sno,sname,grade from student left join sc on student.sno=sc.sno;
+-----------+-----------+-------+| sno | sname | grade |
+-----------+-----------+-------+| 201215121 | 李勇 | 92 |
| 201215121 | 李勇 | 85 |
| 201215121 | 李勇 | 88 |
| 201215122 | 刘晨 | 90 |
| 201215122 | 刘晨 | 80 |
| 201215128 | 陈冬 | 78 |
| 201215123 | 王敏 | null |
| 201215125 | 张立 | null || 201215126 | 张成民 | null |
+-----------+-----------+-------+9 rows in set (0.00 sec)
以上等价于
select sno,sname,grade from student left join sc using(sno);
+-----------+-----------+-------+| sno | sname | grade |
+-----------+-----------+-------+| 201215121 | 李勇 | 92 |
| 201215121 | 李勇 | 85 |
| 201215121 | 李勇 | 88 |
| 201215122 | 刘晨 | 90 |
| 201215122 | 刘晨 | 80 |
| 201215128 | 陈冬 | 78 |
| 201215123 | 王敏 | null |
| 201215125 | 张立 | null || 201215126 | 张成民 | null |
+-----------+-----------+-------+
不同的地方,例如:
select * from student left join sc on student.sno=sc.sno;
+-----------+-----------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+-----------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null | null |
+-----------+-----------+------+------+-------+-----------+------+-------+
select * from student left join sc using (sno);
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
重复的sno列,如果用on字句会被输出两次
right join(右连接)同left join,只不过以右表为基础,例如:
select * from student right join sc using (sno);
+-----------+------+-------+--------+------+------+-------+
| sno | cno | grade | sname | ssex | sage | sdept |
+-----------+------+-------+--------+------+------+-------+
| 201215121 | 1 | 92 | 李勇 | 男 | 22 | cs |
| 201215121 | 2 | 85 | 李勇 | 男 | 22 | cs |
| 201215121 | 3 | 88 | 李勇 | 男 | 22 | cs |
| 201215122 | 2 | 90 | 刘晨 | 女 | 19 | cs |
| 201215122 | 3 | 80 | 刘晨 | 女 | 19 | cs |
| 201215128 | 1 | 78 | 陈冬 | 男 | 18 | is |
+-----------+------+-------+--------+------+------+-------+
inner join(相等连接或内连接)
不会显示以谁为基础,只会显示符合条件的记录
select * from student inner join sc on student.sno=sc.sno;
+-----------+--------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+--------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
+-----------+--------+------+------+-------+-----------+------+-------+
以上语句等同于:
select * from student,sc where student.sno=sc.sno;
+-----------+--------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+--------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
+-----------+--------+------+------+-------+-----------+------+-------+
扩展如果只想从a表中取出一些记录,但不包含b表
可以在left join 后面加上一个where语句
select * from student left join sc using(sno) where sc.sno is null;
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
求差集
可以结合union字句,由于本例中,右侧的已经全部对应的所以显示结果,和上一个一致。
select * from student left join sc using(sno) where student.sno is null union
select * from student left join sc using(sno) where sc.sno is null;
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
full join
select * from student left join sc on student.sno=sc.sno union select * from student right join sc on student.sno=sc.sno;
+-----------+-----------+------+------+-------+-----------+------+-------+
| sno | sname | ssex | sage | sdept | sno | cno | grade |
+-----------+-----------+------+------+-------+-----------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 201215121 | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 201215122 | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 201215128 | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null | null |
+-----------+-----------+------+------+-------+-----------+------+-------+
注:a left join b 等同于 b right join a
mysql> select * from student left join sc using(sno);
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
9 rows in set (0.00 sec)mysql> select * from sc right join student using(sno);
+-----------+-----------+------+------+-------+------+-------+
| sno | sname | ssex | sage | sdept | cno | grade |
+-----------+-----------+------+------+-------+------+-------+
| 201215121 | 李勇 | 男 | 22 | cs | 1 | 92 |
| 201215121 | 李勇 | 男 | 22 | cs | 2 | 85 |
| 201215121 | 李勇 | 男 | 22 | cs | 3 | 88 |
| 201215122 | 刘晨 | 女 | 19 | cs | 2 | 90 |
| 201215122 | 刘晨 | 女 | 19 | cs | 3 | 80 |
| 201215128 | 陈冬 | 男 | 18 | is | 1 | 78 |
| 201215123 | 王敏 | 女 | 18 | ma | null | null |
| 201215125 | 张立 | 男 | 19 | is | null | null |
| 201215126 | 张成民 | 男 | 18 | cs | null | null |
+-----------+-----------+------+------+-------+------+-------+
以上就是mysql中join用法解析的内容。