我正在尝试比较两个查询:
查询1:
SELECT a,b,c,d,e
FROM tableA
LEFT JOIN tableB
ON tableA.a=tableB.a
WHERE tableA.b=tableB.b AND tableA.c=tableB.c AND tableA.d=tableB.d AND tableA.e=tableB.e
查询2:
SELECT a,b,c,d,e
FROM tableA
LEFT JOIN tableB
ON tableA.a=tableB.a AND tableA.b=tableB.b AND tableA.c=tableB.c AND tableA.d=tableB.d
WHERE tableA.e=tableB.e
我是否可以正确地说这两个查询给出相同的结果?
进一步说第一个查询建立一个更大的表并对其做更大的WHERE
条件是否正确;而第二种情况是我们有一个较小的构造表,WHERE
然后将其应用于简单表。
假设结果相同,则应首选哪个查询?是否存在明显的性能问题?
喔好吧。我按照你说的去做。如果我进行编辑以解决
—
杰夫
INNER JOIN
我对性能的问题仍然有效?
对于INNER JOIN,性能应该没有差异。也就是说,为了便于阅读和正确表达意图,您应该在中使用联接条件,
—
亚伦·伯特兰
ON
并在中使用过滤条件WHERE
。
@ypercube对,我错过了这种情况。
—
Lamak
INNER JOIN
,但使用LEFT JOIN
会返回不同的结果。基本上,您在WHERE
第二个查询中添加的条件正在将您的条件转换JOIN
为INNER JOIN