PHP SQL: مطابقة البيانات المقابلة بين جدولين ، دون تصفية البيانات في الجدول الأول

StackOverflow https://stackoverflow.com/questions/2875835

  •  03-10-2019
  •  | 
  •  

سؤال

لدي طاولتان. للحصول على البساطة ، تحتوي الأعمدة التالية على الأعمدة التالية
معرف المستخدم
تقسيم

'D' لديه ما يلي:
تقسيم
اسم

لم أقم بإنشاء هذا الجدول ، وإلا فلن أواجه هذه المشكلة. U.Division يستطيع كن فارغا. D.Division لا تستطيع.

يقوم تشغيل ما يلي بإنشاء البيانات المناسبة ، ولكنه يقوم أيضًا بتصفية كل معرف مستخدم واحد يحتوي على DivisionId. هل لا يزال هناك أي على أي حال لإظهار جميع المستخدمين بغض النظر عن قسمه وإذا لم يكن القسم الفارغ ، فإنه يعرض اسم القسم؟

"حدد userid ، d.name
منك ، د
حيث U.DivisionId = D.DivisionId
طلب بواسطة userId "

هل كانت مفيدة؟

المحلول

استخدم انضمام خارجي:

SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON u.divisionid = d.divisionid
ORDER BY userid

نصائح أخرى

استخدام بناء الجملة oracle أو ضمني ضمني يعني INNER JOIN. يزيل الانضمام الداخلي السجلات التي لا تفي بالمعايير.

انضمام صريح باستخدام JOIN يتيح لك البند تحديد نوع Join.

أ LEFT OUTER JOIN يحتفظ بجميع الصفوف في الجدول الأول ، بغض النظر عما إذا كانت هناك صفوف مطابقة في الجدول الثاني.

SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON d.divisionid = u.divisionid
ORDER BY userid
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top