Heim >Datenbank >MySQL-Tutorial >Wie behebe ich den Fehler „View's SELECT enthält eine Unterabfrage in der FROM-Klausel' in MySQL?

Wie behebe ich den Fehler „View's SELECT enthält eine Unterabfrage in der FROM-Klausel' in MySQL?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-04 05:58:39240Durchsuche

How to Resolve

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn