كيفية الحصول على أعمدة متعددة في متغير واحد في استعلام MySQL

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

سؤال

لدي الجدول

Articles -------- id,name,type_id
Type--------------id,name
article_type ----------article_id , type_id

أنا أستخدم هذا الاستعلام

select A.name from types A 
inner join article_type B on ( B.type_id = A.id and article_id = 10)

الآن هذا الاستعلام يعمل ولكنه يعطيني صفوفًا منفصلة ، لكنني أريد جميع الأنواع في متغيرات واحدة حتى أتمكن من عرضها بتنسيق الجدول مثل

Article name ------------types
milk--------------------dairy , persishable , costly
هل كانت مفيدة؟

المحلول

استخدم MySQL وظيفة group_concat:

  SELECT a.name AS article_name,
         GROUP_CONCAT(t.name) AS types
    FROM ARTICLES a
    JOIN ARTICLE_TYPE at ON at.article_id = a.id
    JOIN TYPE t ON t.id = at.type_id
GROUP BY a.name

نصائح أخرى

إذا فهمت بشكل صحيح ، فإن الحيلة هي الاستخدام CONCAT, ، كما في SELECT CONCAT(A.name, ',',B.type) AS synth FROM...

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