当我通过一个公共列将三个或更多表连接在一起时,我会这样写我的查询:
SELECT *
FROM a, b, c
WHERE a.id = b.id
AND b.id = c.id
一位同事最近问我为什么我没有在这样的查询中明确加入传递闭包:
SELECT *
FROM a, b, c
WHERE a.id = b.id
AND b.id = c.id
AND c.id = a.id
这真的有什么好处吗?优化器肯定可以为自己暗示这一点吗?
编辑:我知道这是邪恶的语法,但它是合法遗留代码的一个快速而肮脏的例子 +1 @Stu清理它