0

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

Sahil Kashyap
  • 329
  • 2
  • 10

0 Answers0