Bueno, por lo general yo uso Subconsultas cuando no hay otro remedio...
La idea es generar una consulta interior que devuelve un campo, y la exterior hace una consulta completa cuyo filtro en el WHERE es buscar en el campo de la interior (te lo pongo de memoria..., espero no equivocarme);
Código SQL
[-]
SELECT * FROM CLIENTES Where CodCliente IN
(SELECT CodCLIENTE FROM otraTabla WHERE ...)
Si te fijas la consulta interior devolverá n registros con un único campo (códigos de cliente); la Exterior busca todos los clientes cuyo CodCliente se los que devuelve la primera consulta. Lo principal es que ambos campos coincidan.