bueno, el Join como tu le llamas, no es más que la unión de 2 tablas en una sentencia SQL
ejemplo
Código:
'select *
from alumnos a inner join
faltas b on (b.CODIALUMNO = a.CODIGO )
where b.INICIOFALTA between' + QuotedStr(sIni) + ' and '
+ QuotedStr(sFin)
es decir, la estructura de una
inner join es la que sigue
Código:
select * (o campos)
from tabla1 inner join tabla2 on (condiciones de unión)
Básicamente, un Inner Join, lo que te hace es unir las 2 tablas (o las que sean, sólo has de ir concatenando Inners Joins) y devolver aquellos rejistros que cumplen las condiciones de unión. Claro está que, si un registro de la tabla 1 no tiene su respectivo en la tabla 2, éste no aparecerá en la consulta. Por eso que, en tu caso es lo que te combiene, ya que
sólo quieres los alumnos que tengan faltas.
Si el caso fuera que quieres todos los alumnos tengan o no faltas (vamos, lo que te sale ahora), para eso existen también el
left outer join y el
rigth outer join, pero eso ya lo trataremos en otra ocasión
Espero que la explicación te sirva