如果某個子查詢將作爲子查詢再次使用,是否可以以某種方式存儲mysql子查詢?據推測這會產生更乾淨的代碼以及節省解析開銷。將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和t2.foo ='bar''而不是'(SELECT * FROM t2 WHERE t2.foo =='bar')'。 P.S只在mysql中有一個'=' – safarov 2012-03-20 11:01:18
您也可以使用視圖 – haltabush 2012-03-20 11:02:21