سؤال

انا لدي طاولتان

الجدول 1: كولنا (varchar)

الجدول 2: عمود (varchar)

أحتاج إلى الحصول على جميع الصفوف من T2 حيث يعد العمود "مثل" أي من الصفوف من "كولومنا". على سبيل المثال، قد تكون الصفوف في T1:

  • summer09.
  • Fall09.

بينما الصفوف في T2 قد يكون

  • SPRING09 COM101 SEC1.
  • Summer09 Stat400 SEC2.
  • Fall09 CS200 SEC3.

في هذا السيناريو، ستقوم بإعادة صفقات STAT400 و CS200. هل هناك طريقة للقيام بذلك في بيان SQL واحد؟

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

المحلول


SELECT T2.*
FROM T1, T2
WHERE T1.ColumnB LIKE T2.ColumnA + '%'

أو


SELECT T2.*
FROM T1
INNER JOIN T2 ON T1.ColumnB LIKE T2.ColumnA + '%'

ربما لن يركض بسرعة كبيرة.

نصائح أخرى

يشير هذا السؤال إلى تصميم طاولة سيئة. وقال صديقي الجيد كامد دائما: لا تجمع بين أجزاء متعددة من المعلومات في عمود واحد!

يجب تقسيم T1 Coulm، لذلك يجب أن يكون الفصل الدراسي و / أو السنة عمود (أعمدة) خاصة به مع FKs إلى جدول T2 حيث يمكن العثور على معلومات الصفية باستخدام فهرس ولا يشبه!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top