Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat 'View's SELECT mengandungi subquery dalam klausa FROM' MySQL?
Menyelesaikan masalah "View's SELECT Contains a Subquery in the FROM Clause" Ralat
Apabila mencipta paparan menggunakan pertanyaan yang mengandungi subquery dalam FROM klausa, MySQL mungkin menghadapi mesej ralat yang menyatakan "View's SELECT mengandungi subquery dalam klausa FROM." Ralat ini menunjukkan bahawa MySQL tidak membenarkan subkueri dalam definisi klausa paparan FROM.
Butiran Ralat
Pertimbangkan contoh berikut:
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 );
Pertanyaan ini cuba mencipta paparan bernama view_credit_status yang merangkumi subkueri dalam klausa FROM. Walau bagaimanapun, MySQL akan menimbulkan ralat "View's SELECT mengandungi subquery dalam klausa FROM".
Penyelesaian
Untuk menyelesaikan isu ini, penyelesaiannya adalah dengan mencipta pandangan berasingan untuk subkueri dan rujuk pandangan tersebut daripada pandangan utama. Begini caranya:
create view temp_view_used_credits as select credit_usage.client_id, sum(credits_used) as credits_used from credit_usage group by credit_usage.client_id;
create view view_credit_status as ( select credit_orders.client_id, sum(credit_orders.number_of_credits) as purchased, ifnull(temp_view_used_credits.credits_used,0) as used from credit_orders left outer join temp_view_used_credits on temp_view_used_credits.client_id = credit_orders.client_id where credit_orders.payment_status='Paid' group by credit_orders.client_id );
Pendekatan ini memisahkan subkueri kepada paparan berasingan, membenarkan MySQL merujuknya dalam paparan utama tanpa melanggar sekatan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'View's SELECT mengandungi subquery dalam klausa FROM' MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!