Globulopolis
Новичок
Две таблицы и мультикатегории
Здравствуйте!
Структура 1-ой таблицы movie
id | genre| movie
1 | 2,3 | alias
2 | 3,2 | alias2
3 | 1,3 | alias3
Структура 2-ой таблицы genre
gid| g_genre
1 | name1
2 | name2
3 | name3
Нужно получить данные одной строкой и вывести их в цикле.
Запрос: SELECT a.id, a.genre, a.movie, b.gid, GROUP_CONCAT(b.g_genre) AS g FROM movie AS a LEFT JOIN genre AS b ON b.gid IN (2,3) WHERE published = 1
Результат:
id genre gid g
1 1,2,3 2 alias2,alias3,alias2,alias3
т.е. получается что результат дублируется. Дальше ещё хуже. если через for выводить полученные данные то в поле g попадает не alias2,alias3,alias2,alias3, а только alias2. И если к примеру результатов 10 то запрос выводит только одну строку. Собстно в чем затык ?
PS! Просьба тапками не пинать. Структура базы досталась в наследие. Поэтому посоветуйте что можно исправить либо может вообще перепроектировать БД ?
Здравствуйте!
Структура 1-ой таблицы movie
id | genre| movie
1 | 2,3 | alias
2 | 3,2 | alias2
3 | 1,3 | alias3
Структура 2-ой таблицы genre
gid| g_genre
1 | name1
2 | name2
3 | name3
Нужно получить данные одной строкой и вывести их в цикле.
Запрос: SELECT a.id, a.genre, a.movie, b.gid, GROUP_CONCAT(b.g_genre) AS g FROM movie AS a LEFT JOIN genre AS b ON b.gid IN (2,3) WHERE published = 1
Результат:
id genre gid g
1 1,2,3 2 alias2,alias3,alias2,alias3
т.е. получается что результат дублируется. Дальше ещё хуже. если через for выводить полученные данные то в поле g попадает не alias2,alias3,alias2,alias3, а только alias2. И если к примеру результатов 10 то запрос выводит только одну строку. Собстно в чем затык ?
PS! Просьба тапками не пинать. Структура базы досталась в наследие. Поэтому посоветуйте что можно исправить либо может вообще перепроектировать БД ?