خطأ في MySQL: تم تحديد الجدول مرتين في UPDATE والمصدر
عند محاولة تحديث جدول المدير باستخدام استعلام SQL المقدم، يواجه MySQL خطأ خطأ: "تم تحديد الجدول 'm1' مرتين، كهدف لـ 'UPDATE' وكمصدر منفصل للبيانات." يحدث هذا الخطأ بسبب الإشارة إلى مدير الجدول مرتين في الاستعلام الفرعي.
يمكن حل المشكلة عن طريق تعديل الاستعلام الفرعي للاختيار من جدول مشتق. بدلاً من استخدام الاسم المستعار m2 مباشرة، يجب على الاستعلام إنشاء جدول مؤقت باستخدام عبارة SELECT، ثم التحديد من هذا الجدول المؤقت. يحقق الاستعلام المعدل أدناه ما يلي:
UPDATE manager SET status = 'Y' WHERE branch_id IN ( SELECT branch_id FROM (SELECT * FROM manager) AS m2 WHERE (branch_id, year) IN ( SELECT branch_id, year FROM branch_master WHERE type = 'finance' ) );
باستخدام جدول مشتق، يمكن لـ MySQL التمييز بشكل صحيح بين جدول المدير المستخدم في عبارة UPDATE وجدول المدير المشار إليه في الاستعلام الفرعي. وهذا يزيل الالتباس الذي أدى إلى ظهور رسالة الخطأ.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3