Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan 'View's SELECT mengandungi subquery dalam klausa FROM' dalam MySQL?

Bagaimana untuk Menyelesaikan 'View's SELECT mengandungi subquery dalam klausa FROM' dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-12-26 05:32:36
asal
213 orang telah melayarinya

How to Resolve

Subquery in View's FROM Clause Troubleshooting

Ralat "View's SELECT mengandungi subquery dalam klausa FROM" berlaku apabila pernyataan SELECT pandangan MySQL termasuk subkueri dalam klausa FROM. Mengikut dokumentasi MySQL, ini tidak dibenarkan.

Untuk menangani isu ini dalam pertanyaan anda untuk membuat paparan bernama view_credit_status, pertimbangkan penyelesaian berikut:

Subkueri yang bermasalah ialah:

(select credit_usage.client_id, 
        sum(credits_used) as credits_used 
 from credit_usage 
 group by credit_usage.client_id) as t0
Salin selepas log masuk

Buat paparan berasingan untuk subkueri ini:

create view view_credit_usage_summary as 
select credit_usage.client_id, 
       sum(credits_used) as credits_used 
from credit_usage 
group by credit_usage.client_id
Salin selepas log masuk

Dalam view_credit_status view, rujuk paparan view_credit_usage_summary baharu dan bukannya subquery:

create view view_credit_status as 
(select credit_orders.client_id, 
        sum(credit_orders.number_of_credits) as purchased, 
        ifnull(view_credit_usage_summary.credits_used,0) as used 
 from credit_orders
 left outer join view_credit_usage_summary on view_credit_usage_summary.client_id = credit_orders.client_id
 where credit_orders.payment_status='Paid'
 group by credit_orders.client_id)
Salin selepas log masuk

Pendekatan ini memisahkan subquery kepada paparan khusus, membolehkan anda mengakses keputusannya tanpa melanggar sekatan MySQL.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'View's SELECT mengandungi subquery dalam klausa FROM' dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan