since when you join the tables, there is are still 3 rows in the resulting table that CR sees, and CR only reads 1 row at a time, it doesn't see that there are 3 related items (well not in the detail section)
you can concatenate if you put the output in a group footer, since CR will have read all 3 records by that time. 3 formulas are usually needed
1) header - reset
shared stringvar concat := ""
2) footer - display
shared stringvar concat;
mid(concat, 3) //removes the leading comma and space
3) detail - increment
shared stringvar concat;
concat := concat + ", " + {table.field};
"" //hides the growing string
HTH