【发布时间】:2017-02-02 01:08:17
【问题描述】:
select s.id,s.name,e.sem from student as s, enroll as e where s.id = e.id;
select s.id,s.name,e.sem from student join enroll using (id);
所以这两个语句得到相同的结果,但有什么区别?有没有不一样的情况?
【问题讨论】:
-
什么都没有。他们决心做同样的事情。第一个是 where 子句中的旧式连接。呸。第二个是现代加入的简写形式……第二个可以让你不用输入
on student.id=enroll.id -
s.id = e.id与这里的join相同。不同之处在于执行的查询的风格。正如@Drew 所说,第一个是老式的,另一个可以节省一些手指疼痛:D:p -
感谢您的回答
-
两者之间存在细微差别,但并不显着。编写良好的程序不应依赖于这些差异。