قم بإنشاء قائمة مفصولة باستخدام استعلام SQL
]عندما تحتوي جداول متعددة على بيانات التطبيق والموارد ، فإن المهمة المشتركة هي سرد جدول يسرد جميع أسماء الموارد وأسماء التطبيقات المرتبطة بفاصلة. لتحقيق ذلك مع استعلام واحد SQL ، اتبع هذه الخطوات:
mysql:
SELECT r.name,
GROUP_CONCAT(a.name SEPARATOR ',') AS application_names
FROM RESOURCES r
JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name
SQL Server (2005) :
SELECT r.name,
STUFF((SELECT ',' a.name
FROM APPLICATIONS a
JOIN APPLICATIONRESOURCES ar ON ar.app_id = a.id
WHERE ar.resource_id = r.id
GROUP BY a.name
FOR XML PATH(''), TYPE).value('text()[1]','NVARCHAR(max)'), 1, LEN(','), '') AS application_names
FROM RESOURCES r
SQL Server (2017) :
SELECT r.name,
STRING_AGG(a.name, ',') AS application_names
FROM RESOURCES r
JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name
Oracle: يوفر Oracle مجموعة متنوعة من خيارات التجميع/الاتصال السلسلة. يرجى الرجوع إلى وثائق بناء جملة ومتطلبات محددة.
تربط هذه الاستفسارات جدول "الموارد" مع جداول "ApplicationsResources" و "Applications" لاسترداد اسم المورد واسم التطبيق المرتبط. يتم بعد ذلك استخدام وظائف "Group_Concat" أو "الأشياء" أو "String_agg" لتوصيل اسم التطبيق بالقائمة المفصولة لكل مورد. لتحسين قابلية القراءة ، أضفنا الاسم المستعار application_names
إلى عمود النتيجة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3