You won't be able to join an empty dataset. What is the expected outcome when the dataset has no rows? Do you simply want to skip the build of this dataset?
If so you can use the record count metric and run checks in a scenario and build the output dataset only if built if the input dataset is not empty.
For your potentially empty datasets create a check - Status - Edit
In your scenario, you would want to compute metrics for the dataset and run a check on that dataset if it fail the next build step would not be run. So it would not impact the rest of your downstream recipes those can still be built.
Let me know if this helps in your case.