Para que MySQL te devuelva una tabla en una rutina almacenada, debe ser forzosamente en un Stored Procedure. Una stored function no puede hacerlo porque sólo puede devolver un único valor, y no una tabla.
La ventaja de una SF es que puedes usarla para obtener un valor dado desde una consulta como si fuese una función nativa, por ejemplo.
La sintaxis, siguiendo tu ejemplo sería (para el SP):
Código MySQL:
Ver originalDELIMITER $$
FROM afiliados a
INNER JOIN gruposfamiliares gf
ON a.grupoFamiliar
=gf.idGrupoFamiliar
WHERE estadoAfiliado
(a.idAfiliado
)=1 DELIMITER;
Respecto al SF:
Código MySQL:
Ver originalDELIMITER $$
FROM afiliados a
INNER JOIN gruposFamiliares gf
ON a.grupoFamiliar
=gf.idGrupoFamiliar
WHERE gf.codpostal
=depto
); RETURN total;
DELIMITER;