The latter may work for you, and will net reasonable SQL if it does, but still we're guessing as to what you're trying to accomplish without howing what's in the main and subreport.
You can link a main report to a subreport, and show the subreport results, which acts like a LO join, but it's inefficient.
You can join the tables using a LO join, as you described, but make sure that you're getting the proper results.
Write the subreport in Crystal. Copy and paste the SQL into a SQL Expression in the main report (wrapped by parens), and add in the where {subreporttable.field} = {mainreport.field} to the SQL Expression.
The latter would likely be used for aggregates though, not for returning multiple rows.
-k