Id 字段
- explain 执行效果:
EXPLAIN SELECT *
FROM subject
WHERE id = 1;

- id 相同时,执行顺序从上到下
EXPLAIN SELECT subject.*
FROM subject, student_score, teacher
WHERE subject.id = student_id
AND subject.teacher_id = teacher.id;

读取顺序:subject -> teacher -> student_score。
- Id 不同。
EXPLAIN SELECT score.*
FROM student_score score
WHERE subject_id = (
SELECT id
FROM subject
WHERE teacher_id = (
SELECT id
FROM teacher
WHERE id = 2
)
);

如果是子查询,id 的序号会递增,id 的值越大优先级越高,越先被执行。
读取顺序:teacher -> subject -> student_score
- id 相同与不同都存在时。
EXPLAIN SELECT subject.*
FROM subject
LEFT JOIN teacher ON subject.teacher_id = teacher.id
UNION
SELECT subject.*
FROM subject
RIGHT JOIN teacher ON subject.teacher_id = teacher.id;

id 如果相同,可以认为是一组,从上往下顺序执行。
在所有组中,id 值越大,优先级越高,越先执行。
读取顺序:2.teacher -> 2.subject -> 1.subject -> 1.teacher。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




