Fehlerbehebung bei Unterabfragen in der FROM-Klausel von View
Der Fehler „SELECT von View enthält eine Unterabfrage in der FROM-Klausel“ tritt auf, wenn die SELECT-Anweisung einer MySQL-Ansicht ausgeführt wird Enthält eine Unterabfrage innerhalb der FROM-Klausel. Gemäß der MySQL-Dokumentation ist dies nicht zulässig.
Um dieses Problem in Ihrer Abfrage zum Erstellen einer Ansicht mit dem Namen view_credit_status zu beheben, ziehen Sie die folgende Lösung in Betracht:
Die problematische Unterabfrage lautet:
(select credit_usage.client_id, sum(credits_used) as credits_used from credit_usage group by credit_usage.client_id) as t0
Erstellen Sie eine separate Ansicht für diese Unterabfrage:
create view view_credit_usage_summary as select credit_usage.client_id, sum(credits_used) as credits_used from credit_usage group by credit_usage.client_id
Referenz in der Ansicht view_credit_status die neue view_credit_usage_summary-Ansicht anstelle der Unterabfrage:
create view view_credit_status as (select credit_orders.client_id, sum(credit_orders.number_of_credits) as purchased, ifnull(view_credit_usage_summary.credits_used,0) as used from credit_orders left outer join view_credit_usage_summary on view_credit_usage_summary.client_id = credit_orders.client_id where credit_orders.payment_status='Paid' group by credit_orders.client_id)
Dieser Ansatz trennt die Unterabfrage in eine dedizierte Ansicht, sodass Sie auf ihre Ergebnisse zugreifen können, ohne die Einschränkungen von MySQL zu verletzen.
Das obige ist der detaillierte Inhalt vonWie löse ich in MySQL „Views SELECT enthält eine Unterabfrage in der FROM-Klausel'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!