delete 和 join
先来两个语句:
DELETE studentgrade
FROM course
WHERE course.course_name='数据结构' and studentgrade.course_id=course.course_id
DELETE studentgrade
FROM course
join StudentGrade on studentgrade.course_id=course.course_id
WHERE course.course_name='数据结构'
这两个是等效的,都是从studentgrade表中删除那些选了’数据结构’课程的学生的成绩。它们的区别是第一个语句使用了隐式连接,第二个语句使用了显式连接。隐式连接是在WHERE子句中指定连接条件,显式连接是在FROM子句中使用JOIN关键字指定连接条件。一般来说,推荐使用显式连接,语法更清晰
记住delete的from后面接的表(暂记为tf,包括join连接成的大表),是来帮助delete后面接的表(暂记为td,td可以是多个表)定位行数据的,td即是要删除数据的表。
tf表通过where筛选后得到的数据,通过主键找到td表要删除的行数据
以上是帮助理解使用,不确定是底层的情况
标签:join,studentgrade,id,course,理解,连接,delete From: https://www.cnblogs.com/yimming/p/17739616.html