首頁 > 資料庫 > mysql教程 > 如何解決MySQL中的「視圖的SELECT在FROM子句中包含子查詢」錯誤?

如何解決MySQL中的「視圖的SELECT在FROM子句中包含子查詢」錯誤?

Mary-Kate Olsen
發布: 2024-12-25 22:13:13
原創
677 人瀏覽過

How to Resolve the

「視圖的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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板