我注意到的是,形式的查询是FROM x JOIN y ON x.a = y.b相当于FROM x,y WHERE x.a = y.b?
SELECT *
FROM a
JOIN b ON a.x = b.y
WHERE [more conditions...];
分别为形式
SELECT *
FROM a,b
WHERE a.x = b.y
AND [more conditions...];
直觉,他们似乎等同的查询返回相同的数据的一些测试数据,但我不相信这是这样的。
我更喜欢使用JOIN
的查询,因为它将查询的通用结构与查询的特定业务逻辑分开。即,使用JOIN
的查询的WHERE
部分中的条件是可以参数化的条件。
在哪些其他方式,如果有的话,这些查询是不是完全相同?
什么是数据库平台? – 2014-10-20 15:11:49
这可能会帮助你http://stackoverflow.com/questions/44917/explicit-vs-implicit-sql-joins – 2014-10-20 15:12:19
是的,在大多数RDBMSs中,它们不仅会返回相同的记录,而且会具有完全相同的执行路径好。 – JNevill 2014-10-20 15:13:27