我嘗試這樣做:mysql howto訪問另一個子查詢中子查詢生成的臨時表?
SELECT ProductId AS GmId, (
SELECT SUM(Amount) FROM tmp WHERE ProductId=GmId AND (AssignDate BETWEEN '$Date1' AND '$Date2')
) AS sum0, (
SELECT SUM(Amount) FROM tmp WHERE ProductId=GmId AND (AssignDate BETWEEN '$Date2' AND '$Date3')
) AS sum1 FROM (
SELECT * FROM somerealtable
) tmp GROUP BY ProductId
然而MySQL顯示錯誤消息table <database name>.tmp doesn't exist!
如何使這項工作?
編輯:sqlfiddle樣品here
EDIT2:更復雜sqlfiddle sample。
考慮提供適當的DDL(和/或sqlfiddle)連同SET – Strawberry
臨時表所需的結果,但在你的問題中未示出(所以他們在哪裏?),是每個會話,並且不能跨會話訪問,以便語句'TEMPORARY表只對當前連接可見「 – nrathaus
http://sqlfiddle.com/#!2/8b5ea/2 –