Sí también parece ser correcto, pero si quieres obtener todos los productos que estén cadúcos o no y a la vez retornar en una variable que diga si está caducado o está activo puedes hacerlo así .
Código MySQL:
Ver original afi.email,
anu.id_anuncio,
anu.name,
anu.estado,
anu.fecha_exp,
FROM anuncios
AS anu
JOIN afiliados
AS afi
ON anu.id_afiliado
= afi.id_afiliado
Ahora puedes obtener todos los registros y saber si está caducado o activo llamando la variable o objeto (dependiendo tu fetch) por el nombre de
estado_fecha