I have 2 tables
1. Genre table -contains info of genre for eg:Kids,News,Movies etc
2. Channel Table- Channel details. A channel can have multiple genre
Channel details
Query #1
select id,name,genres from channels limit 4;
genres is in **varchar**
| id | name | genres |
| --- | ------ | ------ |
| 6 | TBN | 1,2,3 |
| 7 | OUTD | 1 |
| 8 | Travel | 3,5 |
| 9 | BET | 1 |
How I want it to look
| id | name | genres | genresname |
| --- | ------ | ------ |------------------|
| 6 | TBN | 1,2,3 |News,Comedy,Movies|
| 7 | OUTD | 1 | News |
| 8 | Travel | 3,5 | Movies,Kids |
| 9 | BET | 1 | News |
Query #2
select * from genre;
| id | name | status | created_on | modified_on |
| --- | ------ | ------ | ------------------- | ------------------- |
| 1 | News | 1 | 2020-04-16 00:00:00 | 2020-04-16 00:00:00 |
| 2 | Comedy | 1 | 2020-04-16 00:00:00 | 2020-04-16 00:00:00 |
| 3 | Movies | 1 | 2020-04-16 00:00:00 | 2020-04-16 00:00:00 |
| 4 | Family | 1 | 2020-04-16 00:00:00 | 2020-04-16 00:00:00 |
| 5 | Kids | 1 | 2020-05-12 03:00:00 | 2020-05-12 03:00:00 |
| 6 | Sports | 1 | 2020-05-12 10:00:00 | 2020-05-12 14:00:00 |
Query #3
SELECT group_concat(concat_ws(',', name)) AS genresss FROM genre WHERE id IN (1,2,3);
| genresss |
| ------------------ |
| News,Comedy,Movies |
Query #4
SELECT MAKE_SET(1|2|5,'News','Comedy','Movies','Family','Kids','Sports');
| MAKE_SET(1|2|5,'News','Comedy','Movies','Family','Kids','Sports') |
| ----------------------------------------------------------------- |
| News,Comedy,Movies |
I have found IN function and MAKE_SET but I don't know how to use them in this case. Thanks in advance