Вы можете использовать UNION ALL
следующим образом:
select t.col
from (
select 0 type, id, concat('Group ', id) col
from leader
union all
select 1, id, concat('Leader: ', name, ' ', age)
from leader
union all
select 2, id, concat('Member: ', name, ' ', age)
from member
) t
order by t.id, t.type
Результаты:
> | col |
> | :----------------- |
> | Group 1 |
> | Leader: John 40 |
> | Member: Mark 40 |
> | Group 2 |
> | Leader: Doe 35 |
> | Member: Jessica 35 |
> | Member: Tiff 31 |
Или:
select t.col
from (
select 0 type, id, concat('Group ', id) col
from leader
union all
select 1, id, concat('Leader: ', name, ' ', age)
from leader
union all
select 2, id, concat('Member: ', group_concat(concat(name, ' ', age) separator '\n '))
from member
group by id
) t
order by t.id, t.type
Результаты:
> | col |
> | :------------------------------------ |
> | Group 1 |
> | Leader: John 40 |
> | Member: Mark 40 |
> | Group 2 |
> | Leader: Doe 35 |
> | Member: Jessica 35 |
> | Tiff 31 |
См. Демоверсию .