Вместо объединения трех таблиц хорошее решение - использовать скалярные подзапросы . Например:
select
*,
(select group_concat(p.id order by p.price)
from prices p where p.category_id = c.id) as PriceId,
(select group_concat(p.price order by p.price)
from prices p where p.category_id = c.id) as PricePrice,
(select group_concat(v.id order by v.id)
from videos v where v.category_id = c.id) as VideoId,
(select group_concat(v.uuid order by v.id)
from videos v where v.category_id = c.id) as VideoUUID
from categories c
group by id
Результат:
id token PriceId PricePrice VideoId VideoUUID
--- -------------------- ----------- -------------------- ------------ -----------------------------------
1 Wyatt Reinger (ZW) 2,1,3 2.51,2.61,4.45 1,2,3,4 3a817d01,3222679e,63cdc038,e8d8edf4
2 Donna Cronin (BL) 4 4.76 5 93f8a404
3 Ally Kertzmann (GY) 5,6 1.83,1.84 6,7,8 6f2459a7,463127ab,4bf357ba
4 Talia Torp (AF) 7,8 2.61,3.32 9,10,11,12 0cedbd0a,8b21afd7,ea616692,ed2b10d7
5 Delphine Lakin (TL) 11,12,9,10 1.65,3.27,3.27,3.36 13,14,15,16 6217a488,7f52a97a,de11ba64,b49b6ddc
См. Рабочий пример на SQL Fiddle .
Проблема объединения трех таблиц в том, что он производит много повторяющихся значений, которые усложняют агрегирование.