是否有可能将mysql子查询存储起来,以便稍后可以再次用作子查询?这样做可能会产生更清晰的代码并节省解析开销。
例如在以下外部连接中:
SELECT * FROM t1
LEFT JOIN (SELECT * FROM t2 WHERE t2.foo=='bar') ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN (SELECT * FROM t2 WHERE t2.foo=='bar') ON t1.id = t2.id
最好不要重复 (SELECT * FROM t2 WHERE t2.foo=='bar')
。
ON t1.id = t2.id and t2.foo = 'bar'
代替(SELECT * FROM t2 WHERE t2.foo=='bar')
。顺便提一下,在 MySQL 中只需要单个=
。 - safarov