Using a subquery to rename columns
As long as the variables are well-named, I think your way (subquery) will be clear and therefore quite acceptable, though I'm not quite sure whether it will affect performance or to what extent (try benchmarking).

That said, I'd still urge you to use a prepared query  or stored procedure or function, I think that would make it even more clear, and potentially faster.