Как Отобразить результат строк подзапроса как один столбец в MySQL?

У меня есть три таблицы Category, Фильмы и RelCatMov

Таблица категории

    categoryid, categoryName
1            thriller
2            supsense
3            romantic
4            action
5            sci-fi

Таблица фильмов

movieid, movieName
1            Avataar
2            Titanic
3            NinjaAssassin

RelCatMov-таблица

categoryid, MovieID
1            1
2            2
3            2
4            2
5            2

Теперь я Хочу отобразить запись как

MovieName     Categories
Titanic    Suspense,Romantic,Sci-fi,action

Как сделать это.

Я пишу запрос

select MovieName,(select categoryname from category b,relcatmov c where b.categoryid=c.categoryid and c.movieid=a.movieid) as categories from movies a;

Error: Subquery returns more than one row!!!

Как отобразить результат строк в одном столбце?

Помогите!!!

6
задан Joseph Mastey 23 March 2010 в 10:59
поделиться

1 ответ

В Oracle это называется stragg. В MySQL это GROUP_CONCAT.

select MovieName,(select GROUP_CONCAT(categoryname) from category b,relcatmov c where b.categoryid=c.categoryid and c.movieid=a.movieid) as categories from movies a;

Для справки: ваша проблема в том, что MySQL хочет, чтобы вы возвращали одно значение, а вместо этого вы возвращаете несколько строк.

11
ответ дан 9 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: