Erro no retorno de consulta

Pessoal… estou com problemas no select abaixo:

select distinct * from pessoa pes, alimentos al, consulta cons, equivalentes eq
where pes.usuario = $P{usuario} and pes.usuario = al.usuario and pes.usuario = cons.usuario
and pes.usuario = eq.usuario

na verdade preciso fazer um relatório com o retorno desta consulta. Mas ela traz tudo duplicado… =/ dá um total de 1800 registros.
Se alguém puder ajudar a melhorar essa consulta, eu agradeço.

Att,

Olá!

Provavelmente você terá de adicionar a função GROUP BY no final do seu código SQL.

Segue referência:

http://dev.mysql.com/doc/refman/4.1/pt/group-by-functions.html

Espero ter ajudado, até mais!

Não funcionou… continuou duplicando =/
Será que tem como eu pegar apenas o ultimo registro de todas as tabelas, pelo menos? Alguém sabe me informar como fazer isso?

Olá!

Como você montou seu comando SQL? Se possível, cole a estrutura das tabelas do banco de dados também, daí fica mais fácil para ajudar.

Segue um exemplo de como pegar o último registro:

Existe também a função LAST_INSERT_ID() do MySQL.

Até mais

Não é devido ao seu mapeamento estar como eager!!