Я думаю, что ваш вопрос нуждается в немного большем размышлении, но вы можете получить что-то с помощью простых объединений и объединения
drop table if exists dates,customers,employees,data;
create table Dates
(id int, fk_idCustomers int, fk_idEmployee int);
insert into dates values
(1 , 1 , 2);
create table Customers
(id int, fk_idData int);
insert into customers values
(1 , 1),
(1 , 3);
create table employees
(id int, fk_idData int);
insert into employees values
(2 , 2);
create table Data
(id int, Name varchar(20), LastName varchar(20));
insert into data values
(1 , 'John' , 'Doe'),
(2 , 'John1' , 'Doe1'),
(3 , 'John3' , 'Doe3');
select d.id,d.name,d.lastname
from dates
join customers c on c.id = dates.fk_idcustomers
join data d on d.id = c.fk_iddata
union all
select d.id,d.name,d.lastname
from dates
join employees e on e.id = dates.fk_idemployee
join data d on d.id = e.fk_iddata
;
+------+-------+----------+
| id | name | lastname |
+------+-------+----------+
| 1 | John | Doe |
| 3 | John3 | Doe3 |
| 2 | John1 | Doe1 |
+------+-------+----------+
3 rows in set (0.00 sec)