Fehler: View's SELECT enthält eine Unterabfrage in der FROM-Klausel
Problembeschreibung:
Sie versuchen, eine Ansicht zu erstellen, stoßen jedoch auf die Fehlermeldung „Die SELECT-Anweisung der Ansicht enthält FROM Unterabfrage in Klausel". Die von Ihnen angegebene Abfrage lautet wie folgt:
create view view_credit_status as (select credit_orders.client_id, sum(credit_orders.number_of_credits) as purchased, ifnull(t1.credits_used,0) as used from credit_orders left outer join (select * from (select credit_usage.client_id, sum(credits_used) as credits_used from credit_usage group by credit_usage.client_id) as t0 ) as t1 on t1.client_id = credit_orders.client_id where credit_orders.payment_status='Paid' group by credit_orders.client_id)
Ursache:
Laut der MySQL-Dokumentation kann eine SELECT-Anweisung keine Unterabfrage in der FROM-Klausel enthalten.
Lösung:
Ihre Lösung besteht darin, für jede Unterabfrage eine Ansicht zu erstellen. Auf diese Ansichten können Sie dann über die Ansicht view_credit_status zugreifen.
# 创建包含子查询的视图: create view sum_credit_usage as select client_id, sum(credits_used) as credits_used from credit_usage group by client_id; # 创建您的最终视图: create view view_credit_status as (select credit_orders.client_id, sum(credit_orders.number_of_credits) as purchased, ifnull(sum_credit_usage.credits_used, 0) as used from credit_orders left outer join sum_credit_usage on t1.client_id = credit_orders.client_id where credit_orders.payment_status='Paid' group by credit_orders.client_id);
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „View's SELECT enthält eine Unterabfrage in der FROM-Klausel' in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!