"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يلقي MySQL خطأ "الجدول المحدد مرتين" عند تحديث جدول باستخدام استعلام فرعي؟

لماذا يلقي MySQL خطأ "الجدول المحدد مرتين" عند تحديث جدول باستخدام استعلام فرعي؟

تم النشر بتاريخ 2024-11-14
تصفح:134

Why Does MySQL Throw

خطأ في 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