Initially, based on the gist of your complaint I would say the solution requires either
- GROUP BY, and maybe subselects
- Or removing the *, specifying only the fields you need, and using DISTINCT.
Alternatively, if you were using Pg, you could maintain '*', and use
http://www.postgresql.org/docs/8.4/interactive/sql-select.html.