mysql 三联表_mysql lift join 简单的三联表查询

本文介绍了如何在MySQL中进行三联表查询,通过示例展示了如何创建和关联班级表、student表、teacher表以及course和score表。详细解释了外键的使用,并提供了一个精简的LEFT JOIN查询来获取学生姓名、课程名称和成绩的综合信息。
摘要由CSDN通过智能技术生成

非常感谢老师!

看图吧

91c44421d3aa4d81171b05c5a81bd992.png

班级表 创建及添加数据 在此省略...

创建student表

create table student(

sid int not null auto_increment primary key,

sname varchar(30),

gender enum(‘男‘,‘女‘)

)engine = innodb default charset = utf8

添加外键:

alter table student add constraint fk_c_s foreign key student(class_id) references class(cid);

student 添加数据

insert into student(sname,gender,class_id) values (‘钢蛋‘,‘女‘,1),(‘铁锤‘,‘女‘,1),(‘山炮‘,‘男‘,2);

创建teacher表

create table teacher(

tid int not null auto_increment primary key,

tname varchar(30)

)engine = innodb default charset = utf8

添加老师数据:

insert into teacher(tname) values (‘波多‘),(‘苍空‘),(‘饭岛‘);

创建course课程表

create table course(

cid int not null auto_increment primary key,

cname varchar(30),

tearch_id int

)engine = innodb default charset = utf8

添加课程表外键:

alter table course add constraint fk_t_c foreign key course(tearch_id) references teacher(tid);

添加课程表内容:

insert into course(cname,tearch_id) values (‘生物‘,1),(‘体育‘,1),(‘物理‘,2);

创建score成绩表:

create table score(

sid int not null auto_increment primary key,

student_id int,

corse_id int,

number int

)engine = innodb default charset = utf8

添加score外键:

alter table score add constraint fk_s_s foreign key score(student_id) references student(sid);

alter table score add constraint fkk_c_s foreign key score(corse_id) references course(cid);

添加score 数据

insert into score(student_id,corse_id,number) values (1,1,60),(1,2,59),(2,2,100);

数据成绩表:

select * from (score left join student on score.student_id=student.sid) left join course on score.corse_id=course.cid;

精简查询:

select score.sid as "序号" , student.sname as "姓名",course.cname as "课程",score.number as "成绩" from (score left join student on score.student_id=student.sid) left join course on score.corse_id=course.cid;

精简查询结果:

959769292debfa0ad32808ac62359237.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值