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?

Mary-Kate Olsen
Freigeben: 2024-12-25 22:13:13
Original
681 Leute haben es durchsucht

How to Resolve the

„SELECT der Ansicht enthält eine Unterabfrage in der FROM-Klausel“: Beheben des Problems

Beim Versuch, eine Ansicht basierend auf zwei Tabellen zu erstellen, credit_orders und credit_usage gibt die Abfrage einen Fehler zurück, der besagt: „Views SELECT enthält eine Unterabfrage in der FROM-Klausel.“ Dieser Fehler tritt auf, weil die MySQL-Dokumentation das Vorhandensein von Unterabfragen in der FROM-Klausel einer Ansichts-SELECT-Anweisung ausdrücklich verbietet.

Um dieses Problem zu beheben und die Ansicht erfolgreich zu erstellen, müssen für jede Unterabfrage separate Ansichten erstellt werden. Dabei werden Zwischenansichten sowohl für die Berechnung der erworbenen Credits als auch für die Berechnung der genutzten Credits erstellt.

Für die Berechnung der gekauften Credits kann die folgende Abfrage verwendet werden:

CREATE VIEW view_purchased_credits AS
SELECT
  client_id,
  SUM(number_of_credits) AS purchased
FROM credit_orders
GROUP BY client_id;
Nach dem Login kopieren

Für die Berechnung der genutzten Credits , kann die folgende Abfrage verwendet werden:

CREATE VIEW view_credits_used AS
SELECT
  client_id,
  SUM(credits_used) AS used
FROM credit_usage
GROUP BY client_id;
Nach dem Login kopieren

Sobald diese Zwischenansichten erstellt wurden, ist es möglich, die Ansicht „view_credit_status“ zu erstellen Zugriff auf die Zwischenansichten:

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';
Nach dem Login kopieren

Durch Eliminieren der Unterabfrage aus der FROM-Klausel und Verwendung von Zwischenansichten kann die Ansicht „view_credit_status“ erfolgreich erstellt werden, ohne den mit Unterabfragen in der FROM-Klausel verbundenen Fehler auszulösen.

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage