"View's SELECT Mengandungi Subquery dalam Klausa FROM": Menyelesaikan Isu
Apabila cuba mencipta paparan berdasarkan dua jadual, credit_orders dan credit_usage, pertanyaan mengembalikan ralat yang menunjukkan "View's SELECT mengandungi subquery dalam DARIPADA klausa." Ralat ini berlaku kerana dokumentasi MySQL secara eksplisit melarang kehadiran subkueri dalam klausa FROM bagi pernyataan SELECT paparan.
Untuk menyelesaikan isu ini dan berjaya mencipta paparan, adalah perlu untuk mencipta paparan berasingan bagi setiap subkueri. Ini melibatkan membuat paparan perantara untuk pengiraan kredit yang dibeli dan pengiraan kredit yang digunakan.
Untuk pengiraan kredit yang dibeli, pertanyaan berikut boleh digunakan:
CREATE VIEW view_purchased_credits AS SELECT client_id, SUM(number_of_credits) AS purchased FROM credit_orders GROUP BY client_id;
Untuk pengiraan kredit yang digunakan , pertanyaan berikut boleh digunakan:
CREATE VIEW view_credits_used AS SELECT client_id, SUM(credits_used) AS used FROM credit_usage GROUP BY client_id;
Setelah pandangan perantara ini dibuat, ia adalah mungkin untuk mencipta paparan view_credit_status dengan mengakses paparan perantara:
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';
Dengan menghapuskan subkueri daripada klausa FROM dan menggunakan paparan perantara, paparan view_credit_status boleh berjaya dibuat tanpa mencetuskan ralat yang dikaitkan dengan subkueri dalam klausa FROM.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'View's SELECT Mengandungi Subquery dalam Klausa FROM' dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!