Paste this into a new question or an answer at dba.stackexchange.com:
<!-- --> > create table personas (idpersona int, nombrepersona varchar(255)); > create table asistencias(idpersona int, fecha date); > insert into personas (idpersona, nombrepersona) values (1, 'juan'), (2, 'pedro'); > insert into asistencias(idpersona, fecha) values (1, '2021-08-01'), (2, '2021-08-03'), (1, '2021-08-03'); > > <pre> > ✓ > > ✓ > > ✓ > > ✓ > </pre> <!-- --> > select p.idpersona, > p.nombrepersona, > f.fecha > from (select p1.idpersona, > a1.fecha > from (select distinct fecha from asistencias) a1 > cross join personas p1 > ) f > left join asistencias a > on f.fecha = a.fecha > and a.idpersona = f.idpersona > inner join personas p > on p.idpersona = f.idpersona > where a.fecha is null > > <pre> > idpersona | nombrepersona | fecha > --------: | :------------ | :--------- > 2 | pedro | 2021-08-01 > </pre> *db<>fiddle [here](https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=025b1a88728cd8f21f31996e170a2632)*
back to fiddle