「視圖的SELECT 在FROM 子句中包含子查詢」:解決問題
嘗試基於兩個表建立視圖時, Credit_s和Credit_usage 時,查詢傳回錯誤,指示「檢視的SELECT 在FROM 子句中包含子查詢」。出現此錯誤的原因是 MySQL 文件明確禁止視圖 SELECT 語句的 FROM 子句中存在子查詢。
要解決此問題並成功建立視圖,需要為每個子查詢建立單獨的視圖。這涉及到為購買的積分計算和使用的積分建立中間視圖。
對於購買的積分計算,可以使用以下查詢:
CREATE VIEW view_purchased_credits AS SELECT client_id, SUM(number_of_credits) AS purchased FROM credit_orders GROUP BY client_id;
對於使用的積分計算,可以使用以下查詢:
CREATE VIEW view_credits_used AS SELECT client_id, SUM(credits_used) AS used FROM credit_usage GROUP BY client_id;
建立這些中間視圖後,就可以建立透過存取中間視圖來查看view_credit_status 視圖:
CREATE VIEW view_credit_status AS SELECT co.client_id, v1.purchased, v2.used FROM credit_orders AS co LEFT JOIN view_purchased_credits AS v1 ON v1.client_id = co.client_id LEFT JOIN view_credits_used AS v2 ON v2.client_id = co.client_id WHERE co.payment_status = 'Paid';
透過消除FROM 子句中的子查詢並使用中間視圖,可以成功建立 view_credit_status 視圖,而不會觸發與 FROM 子句中的子查詢相關的錯誤。
以上是如何解決MySQL中的「視圖的SELECT在FROM子句中包含子查詢」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!