Как получить несколько столбцов в одной переменной в запросе MySQL - PullRequest
0 голосов
/ 25 августа 2010

у меня есть стол

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

Ответы [ 2 ]

3 голосов
/ 25 августа 2010

Используйте функцию 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
0 голосов
/ 25 августа 2010

Если я правильно понимаю, хитрость заключается в использовании CONCAT, как в SELECT CONCAT(A.name, ',',B.type) AS synth FROM...

...