اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

استعمل subquery كالتالي:

  • سنعتبر كل استعلام جزئي جدول، ثم نطبق الدمج على هذين الجدولين
SELECT T1.col_1, T1.col_2, T2.col_3  -- جلب الأعمدة المطلوبة

FROM (SELECT col_1, col_2) AS T1     -- تعيين اسم مستعار للجدول الأول

JOIN (SELECT col_1, col_3) AS T2     -- تعيين اسم مستعار للجدول الاني

ON T1.col_1 = T2.col_1               -- عمل الربط حسب العمود المطلوب

لتجنب القيم الفارغة:

  • إما تختار عمل ربط / دمج يساري  LEFT JOIN في MySQL
  • استخدام الدالة COALESCE التي تعيد أول قيمة غير فارغة من الحقلين المتشابهين (T1.col_1, T2.col_1) COALESCE
    SELECT 
    	COALESCE(T1.col_1, T2.col_1),    -- لاحظ استخدام COALESCE
    	T1.col_2, 
    	T2.col_3  
    
    FROM (SELECT col_1, col_2) AS T1     -- تعيين اسم مستعار للجدول الأول
    
    JOIN (SELECT col_1, col_3) AS T2     -- تعيين اسم مستعار للجدول الاني
    
    ON T1.col_1 = T2.col_1               -- عمل الربط حسب العمود المطلوب

     

  • 1
نشر

يمكنك كذلك استخدام UNION ALL والتي تقوم بدمج كل الأعمدة سويا ، ونقوم باستدعاء الأعمدة غير الموجودة في الجدول الأول ك null وكذلك في الجدول الثاني  كالتالي:

SELECT col1, col2, NULL AS col3 FROM table1
UNION ALL
SELECT col1, NULL, col3 FROM table2

أو استخدام FULL OUTER JOIN مع خاصية  (false match condition (1 = 2 كالتالي:

SELECT COALESCE(t1.a, t2.a) AS col1, t1.col2,t2.col3
FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON 1 = 2

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...