2016-01-21 95 views
3

我想在同一個查詢中多次引用一個臨時表。由於使用臨時表的問題,我不能這樣做:重複臨時表MySQL

http://dev.mysql.com/doc/refman/5.7/en/temporary-table-problems.html

因此,要解決這個問題,我創建臨時表的副本:

CREATE TEMPORARY TABLE IF NOT EXISTS earnings_temp_one AS (SELECT * FROM earnings WHERE earning_account_id = ?); 
CREATE TEMPORARY TABLE IF NOT EXISTS earnings_temp_two AS (SELECT * FROM earnings WHERE earning_account_id = ?); 
CREATE TEMPORARY TABLE IF NOT EXISTS earnings_temp_three AS (SELECT * FROM earnings WHERE earning_account_id = ?); 

但是這需要我查詢了大量的表盈利3倍,這在一定程度上擊敗了目的。

有沒有辦法讓我用不同的名字複製臨時表?

然後,我可以在龐大的表上運行一次查詢。

或者也許有臨時表問題的修復,不需要我創建重複?

回答

3

好吧,我解決了這個問題:

CREATE TEMPORARY TABLE IF NOT EXISTS earnings_temp_one AS (SELECT * FROM earnings WHERE earning_account_id = ?); 
CREATE TEMPORARY TABLE IF NOT EXISTS earnings_temp_two AS (SELECT * FROM earnings_temp_one); 
CREATE TEMPORARY TABLE IF NOT EXISTS earnings_temp_three AS (SELECT * FROM earnings_temp_one); 
+0

隨意接受你自己的答案。 –