خطأ: تناقضات في عدد الأعمدة في عبارات SELECT
عند تنفيذ استعلام يتضمن عبارات SELECT متعددة، مثل عملية UNION، فمن الضروري للتأكد من أن كل عبارة تحتوي على نفس عدد الأعمدة بالضبط. سيؤدي الفشل في القيام بذلك إلى ظهور الخطأ "خطأ: تحتوي عبارات SELECT المستخدمة على عدد مختلف من الأعمدة".
لحل هذه المشكلة، يجب إعادة كتابة الاستعلام بحيث يكون لكل جملة SELECT رقم متطابق من الأعمدة مع أنواع البيانات المتوافقة. على سبيل المثال، الاستعلام المقدم:
SELECT * FROM friends LEFT JOIN users AS u1 ON users.uid = friends.fid1 LEFT JOIN users AS u2 ON users.uid = friends.fid2 WHERE (friends.fid1 = 1) AND (friends.fid2 > 1) UNION SELECT fid2 FROM friends WHERE (friends.fid2 = 1) AND (friends.fid1يعاني من هذا الخطأ حيث أن التحديد الأول يحتوي على 4 أعمدة (""، u1.، u2.*)، بينما يقوم التحديد الثاني بإرجاع عمود واحد فقط ("fid2" ").
إعادة الكتابة الأكثر وضوحًا والتي تحافظ على الوظيفة المقصودة هي:
SELECT f.*, u.* FROM FRIENDS AS f JOIN USERS AS u ON u.uid = f.fid2 WHERE f.fid1 = 1 AND f.fid2 > 1 UNION SELECT f.*, u.* FROM FRIENDS AS f JOIN USERS AS u ON u.uid = f.fid1 WHERE f.fid2 = 1 AND f.fid1من خلال التأكد من أن كلا عبارات SELECT ترجع نفس عدد الأعمدة مع أنواع البيانات المتطابقة، يمكن تنفيذ الاستعلام دون مواجهة خطأ عدد الأعمدة. بالإضافة إلى ذلك، فهو يزيل الصلات الخارجية غير الضرورية، والتي تبدو زائدة عن الحاجة بناءً على المخطط المقدم.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3