SELECT invoice_id, sum_amount
FROM (SELECT invoice_id, SUM(amount) AS sum_amount
FROM invoice
GROUP BY invoice_id) AS TEMP_TABLE
WHERE sum_amount in (SELECT MAX(sum_amount)
FROM TEMP_TABLE);
當我嘗試使用TEMP_TABLE時,發生錯誤並且表示TEMP_TABLE不存在。爲什麼它不起作用?我認爲執行順序是「FROM」,然後是「WHERE」,那時表的別名已經創建。如何在MySQL的WHERE子句中使用子查詢表別名
我知道有其他的方法來做到這一點。但任何解釋爲什麼這個是無效的?謝謝! – niu
您需要一個CTE(公用表表達式)來重用派生表別名,而mysql不支持CTE。 – piotrm