شرح صفوف ومحتوى الفقرة
بدلاً من سحب آلاف الصفوف إلى ذاكرة التطبيق البرمجي ثم إعادة إدراجها صفاً تلو الآخر، تنقل صيغة INSERT INTO ... SELECT مخرجات أي استعلام SELECT (بما في ذلك الاستعلامات المترابطة عبر JOIN) وتدرجها مباشرةً داخل الجدول الهدف في محرك قاعدة البيانات:
- التطابق الموضعي للأعمدة: اذكر دائماً أسماء الأعمدة المستهدفة صراحةً بعد
INSERT INTOوطابق عددها وأنواع بياناتها مع قائمةSELECTبالترتيب. - الاستغناء عن كلمة
VALUES: عند الإدراج من استعلام، تحل جملةSELECTمحل جملةVALUES (...)بالكامل.
SQL
-- Populate shipping_labels from paid orders joined with customers
INSERT INTO shipping_labels (order_id, recipient_name, city, created_at)
SELECT
o.order_id,
u.full_name,
u.city,
o.order_date
FROM orders AS o
INNER JOIN users AS u ON o.user_id = u.user_id
WHERE o.status = 'paid';