If you want to replace the subquery with a join, you'll need to use STRING_AGG() in place of the XML concatenation method. STRING_AGG() is available starting in SQL 2017.
PS: You do realize that this thread is almost six years old.
J. Drew Allen
Business Intelligence Analyst