1

假设有两个表:

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;
4

1 回答 1

1

我会说通常不会有性能损失,而我更喜欢第一个更锐利。甚至:

SELECT * FROM
students NATURAL INNER JOIN instructors;

一如既往explain,常识是您的完美指南。可能存在NATURAL不完全符合您要求的情况,因为它会自动选择所有具有相同名称的字段。有些情况USING不包括您的加入规则。我个人尝试编写尽可能少的代码,使其尽可能具有可读性。一切都喜欢NATURALorUSING只是一种语法糖,使我的代码更具可读性。

于 2013-09-26T21:07:12.260 回答