我正在用2个派生表(或者你可以称之为子查询)和WHERE子句来写一个查询来筛选,但我不知道在哪里我应该放置WHERE子句来优化性能。请看下面的例子: (我肯定知道这是一个愚蠢的例子,但它可以帮助来形容我的问题)我应该把WHERE子句放在子查询中(派生表)吗
SELECT *
FROM
(SELECT id FROM A) A
JOIN
(SELECT id FROM B) B
ON A.id = B.id
WHERE A.id = 1
VS
SELECT *
FROM
(SELECT id FROM A
WHERE A.id = 1
) A
JOIN
(SELECT id FROM B
WHERE B.id = 1
) B
ON A.id = B.id
从性能的角度来看,它的问题在哪里放置WHERE子句? 我的数据库太小了,所以在测试查询时我没有看到任何区别。 谢谢。
什么阻止您从A.id = b.ID上的JOIN B做SELECT * WHERE A.Id = 1? – wentimo
那么,第二个甚至没有有效的语法 – Paparazzi
纠正了他。 – trincot