假设有两个表:
students (student_id INT, class_id INT);
instructors (instructor_id INT, class_id INT);
这两者之间是否有性能差异:
SELECT * FROM
students INNER JOIN instructors USING (class_id);
SELECT * FROM
student INNER JOIN instructors ON students.class_id = instructors.class_id;
答案 0 :(得分:1)
我会说,一般来说,没有性能损失,而我更喜欢第一个更尖锐。甚至:
SELECT * FROM
students NATURAL INNER JOIN instructors;
一如既往explain
,常识是您的完美指南。可能存在NATURAL
不完全符合您需要的情况,因为它会自动选择具有相同名称的所有字段。在某些情况下USING
不包含您的加入规则。我个人尝试尽可能少地编写代码,使其尽可能可读。像NATURAL
或USING
这样的东西只是一种语法糖,使我的代码更具可读性。