sound like either your join is incorrect and you are getting the cartesian product (no table1 * no table2)
or your data is exactly as it should be
(table1 * no table2)
if you have 2 records in table2 that match the join criteria in table1, you should get 2 records...and if you display table1 data it will duplicate.
usually to get around this, you put your table1 fields in a group header so that they are only displayed once, and you put the table2 records in details or another group so that they are displayed correctly.
HTH