Может быть, вам просто нужно объединение с ON..OR и group_concat
drop table if exists team,team_users,classes;
create table `team`
(id int, title varchar(10));
insert into team values
(1 , 'New team'),
(2 , 'Other team');
create table `team_users`
(id int, team_id int, user_id int, role varchar(10));
insert into team_users values
(1 , 1 , 1 , 'leader'),
(2 , 2 , 3 , 'student');
create table classes
( id int, team_id int, class_name varchar(20), creator_id int);
insert into classes values
( 1 , 1 , 'Other class' , 2),
( 2 , 2 , 'half baked' , 1),
( 2 , 2 , 'My class' , 1);
select user_id ,
group_concat(c.class_name) classes
from team_users tu
left join classes c on c.creator_id = tu.user_id or c.team_id = tu.team_id
where tu.user_id = 1;
+---------+---------------------------------+
| user_id | classes |
+---------+---------------------------------+
| 1 | Other class,half baked,My class |
+---------+---------------------------------+
1 row in set (0.001 sec)