Mysql 关联查询、关联表删除、多表删除、关联表条件删除 实例(详解)
文章概览
1. 基础结构
2. 关联查询
3. 关联删除
4. 问题解决
基础结构
student 表结构
id name age
1 小明 18
2 小花 19
3 小丽 20
class 表结构
id name
1 班级1
2 班级2
3 班级3
s_c_r 关联表结构
id class_id student_id
1 1 1
2 1 2
3 2 3
关联查询
查询学生所对应班级信息
使用技术:INNER JOIN 关联表,INNER JOIN 关键字在表中存在至少一个匹配时返回行
Sql 语句
select c.name as class_name,s.name as student_name
from s_c_r inner join student s on s_c_r.student_id = s.id
inner join class c on s_c_r.class_id = c.id
查询数据模拟
class_name student_name
班级1 小明
班级1 小花
班级2 小丽
关联删除
学生 信息删除:删除 关联记录 表 学生信息表
**使用技术: delete from table where condition = **
Sql 语句
delete student,s_c_r from student,s_c_r where s_c_r.student_id = student.id and student.name = '小花’
结果
Affected rows: 2
时间: 0.001s
解析: 影响行数 2 条=> 学生班级关联表数据 学生表 数据 =>条件 学生姓名 小花
问题解决
问:使用 delete table_1 from table_1,table_2 只删除 table_1 数据 ?
delete 表名=> 决定 删除哪个表数据
问: delete table_1 from table1 t1 where t1.id=1 执行失败 ?
delete 删除操作 不能使用别名