Rumah >pangkalan data >tutorial mysql >Paparan dan Subkueri MySQL dalam Klausa FROM: Bagaimana Mengatasi Had 5.0?
Subquery untuk klausa FROM dalam paparan MySQL 5.0: had dan penyelesaian
Pengguna MySQL 5.0 mungkin menghadapi ralat semasa cuba membuat paparan yang mengandungi subkueri dalam klausa FROM Mesej ralat ialah "ERROR 1349 (HY000): View's SELECT mengandungi subquery dalam klausa FROM Cipta paparan berdasarkan pertanyaan kompleks yang mengandungi subkueri.
Satu penyelesaian yang mungkin adalah dengan membuat paparan berasingan untuk setiap subkueri dan kemudian menggantikan subkueri dengan paparan terbitan ini. Pertimbangkan contoh pertanyaan berikut:
<code class="language-sql">SELECT temp.UserName FROM ( SELECT u1.name AS UserName, COUNT(m1.UserFromId) AS SentCount FROM Message m1, User u1 WHERE u1.uid = m1.UserFromId GROUP BY u1.name HAVING SentCount > 3 ) AS temp;</code>
Untuk memintas pengehadan ini, paparan boleh dibuat untuk kedua-dua subkueri:
<code class="language-sql">CREATE VIEW v_user_sent_count AS SELECT u1.name AS UserName, COUNT(m1.UserFromId) AS SentCount FROM Message m1, User u1 WHERE u1.uid = m1.UserFromId GROUP BY u1.name; CREATE VIEW v_users_sent_over_3 AS SELECT UserName FROM v_user_sent_count WHERE SentCount > 3;</code>
Dalam pertanyaan asal, gantikan subkueri dengan paparan terbitan:
<code class="language-sql">SELECT UserName FROM v_users_sent_over_3;</code>
Pendekatan ini membenarkan mencipta pandangan berdasarkan subkueri kompleks dalam versi MySQL yang terdapat sekatan subkueri dalam klausa FROM. Walau bagaimanapun, perlu diingatkan bahawa tidak semua subkueri boleh dinyatakan tanpa klausa FROM. Contohnya, subkueri yang digunakan untuk mengisih atau menapis mungkin memerlukan kaedah lain, seperti menggunakan subkueri berkorelasi atau fungsi tetingkap.
Atas ialah kandungan terperinci Paparan dan Subkueri MySQL dalam Klausa FROM: Bagaimana Mengatasi Had 5.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!