У меня есть три таблицы 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!!!
Как отобразить результат строк в одном столбце?
Помогите!!!
В 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 хочет, чтобы вы возвращали одно значение, а вместо этого вы возвращаете несколько строк.