Thank you for actually answering my question, rather than
telling me I don't know what I am doing. I had not considered
interpolation it sounds like a good alternative.
As I mentioned in the original post join caused some serious issues in certain pathalogical cases, the fact that it is the
"obvious" solution doesn't help if it kills the machine
for some (rare) cases.
Having a solution that works reliably is of slightly higher priority than the extra few lines of comments that an
obscure construct will require.