سعيد يوسف نشر 20 أكتوبر 2021 أرسل تقرير نشر 20 أكتوبر 2021 لدي استعلامين من جدولين بالشكل التالي: -- الجدول الأول Select col_1 col_2 -- الجدول الثاني Select col_1 col_3 -- إن قمت بعمل union col_1 col_2 -- ستكون النتيجة خطأ -- وأنا أريد col_1 col_2 col_3 -- عمود الدمج col_1 2 اقتباس
1 Wael Aljamal نشر 20 أكتوبر 2021 أرسل تقرير نشر 20 أكتوبر 2021 استعمل 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 اقتباس
1 Ahmed Sharshar نشر 20 أكتوبر 2021 أرسل تقرير نشر 20 أكتوبر 2021 يمكنك كذلك استخدام 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 1 اقتباس
السؤال
سعيد يوسف
لدي استعلامين من جدولين بالشكل التالي:
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.