"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية الانضمام إلى الجداول مع حقول القيمة المفصولة بفواصل في SQL؟

كيفية الانضمام إلى الجداول مع حقول القيمة المفصولة بفواصل في SQL؟

تم النشر بتاريخ 2024-11-16
تصفح:670

How to Join Tables with Comma-Separated Value Fields in SQL?

الاستعلام عن حقول الانضمام المتعددة باستخدام قيم مفصولة بفواصل

في SQL، عند التعامل مع الجداول التي تحتوي على قوائم مفصولة بفواصل (CSVs) في حقولهم، قد يكون من الصعب إجراء عمليات الانضمام بشكل فعال. تستكشف هذه المقالة سيناريو محددًا حيث يحتوي عمود الفئات في جدول الأفلام على معرفات فئات متعددة، والهدف هو استبعادها بالكامل أثناء جلب أسماء الفئات المقابلة من جدول الفئات.

توضح الجداول التالية السيناريو :

Table categories:
-id-       -name-
1          Action
2          Comedy
4          Drama
5          Dance

Table movies:
-id-       -categories-
1          2,4
2          1,4
4          3,5

لإجراء عملية الربط المطلوبة، يمكننا استخدام وظيفة find_in_set() بالتزامن مع عملية group_concat(). إليك الاستعلام:

select
    m.id,
    group_concat(c.name)
from
    movies m
    join categories c on find_in_set(c.id, m.categories)
group by
    m.id

شرح الاستعلام:

  • find_in_set() يتحقق من وجود سلسلة فرعية محددة داخل سلسلة، في هذه الحالة، إذا كان معرف الفئة من جدول الفئات موجود في ملف CSV الخاص بعمود الفئات في جدول الأفلام.
  • تربط جملة الربط بين الجدولين بناءً على find_in_set() الشرط.
  • يقوم group_concat() بتسلسل جميع أسماء الفئات المتطابقة لكل معرف فيلم في سلسلة واحدة.
  • تضمن جملة التجميع حسب أن النتائج مجمعة حسب معرف الفيلم، مما يوفر عملية نظيفة ومنظمة الإخراج.

يعرض الإخراج الناتج معرفات الفيلم مع أسماء الفئات المقابلة لها في تنسيق صفيف. يتيح ذلك سهولة الوصول إلى الفئات ذات الصلة دون الحاجة إلى فك تشفير ملف CSV في جدول الأفلام.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3