mysql多表删除,多对多关系,外连接,自连接

多表删除:

先进行查询操作

删除没有学习任何课程的同学
学生表,课程表
select * from stu as s
left join stu_lesson as sl
on s.id = sl.stu_id
where sl.stu_id is null
然后把这个表删除
把 select *  换成 delete s      //s表示最后合并后的这个表,最后将这个表中没有学习任何课程的同学删除

多对多关系

一个学生可以参加多个课程,一个课程可以对应多个学生,

所以二者之间的关系需要中间表进行连接 stu_lesson

哪个班的同学更喜欢php
班级表,学生表,课程表,stu_lesson表
select * from class as c
inner join stu as s
on c.id = s.class_id
inner join stu_lesson as sl
on s.id = sl.stu_id
inner join lesson as l
on sl.lesson_id = l.id;
在将select * 换成查询条件 select c.id

外连接

相比inner join 来说 left join和right join 可以合并不符合匹配条件的null信息,提供更多select结果

自连接,自己连接自己

对同一个表设置不同的别名

查找学生表中,和李明同一班的学生
select * from stu as s1
inner join stu as s2
on s1.class = s2.class
where s1.name = '李明'
and s2.name !='李明';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值