このままでもできないことはないと思いますが、table_bの構造が
SQL的に最悪ですね・・・正規化を学習した方がいいでしょう。
一部手を抜いていますが、たとえばこんな感じで、
※テーブル
create table table_a (genre_id int,genre varchar(20));
insert into table_a values(1,'和食'),(2,'中華'),(3,'イタリアン'),(4,'フレンチ');
create table table_b (etc_id int,etc1 varchar(30),etc2 varchar(30));
insert into table_b values(1,'aaa','ああ'),(2,'bbb','いい'),(3,'ccc','うう'),(4,'ddd','ええ');
create table table_a_b (genre_id int,etc_id);
insert into table_a_b values(1,1),(1,2),(1,3),(2,2),(2,3),(3,1),(4,2);
※SQL
select table_a_b.genre_id,group_concat(table_a.genre) as genre,table_b.etc1,table_b.etc2
from table_a_b
inner join table_a on table_a.genre_id = table_a_b.genre_id
inner join table_b on table_a_b.etc_id = table_b.etc_id
group by table_a_b.genre_id
お礼
>もやはSQLでやる意味がないくらいパフォーマンスの出ない 処理だと思います。 その通りだと思います。 テーブルを構築し直しても良いのですが、インプットの処理とアウトプットの処理(自分が担当)で、別々の人間が別々の言語で構築しているので、構築時間等を考えると、このままのテーブルを利用するのがベターだと思いまして。。 プログラムに直書きして処理した方が、レスポンス良さそうですよね。 クエリ例、有難うございました。 参考になりました!