There are actually quite a lot of ways to to do it. The most direct way would be as Marquee asid, join them together and then create new field for difference.
Here I created an example using different ways and looking at the performance, seems using append field would save a little bit of time (not much but a little bit).
All I want to say is when designing a more complex workflow, performance could become an issue and need to be aware of how to refine it.
As far as I know, join will embed a sorting action in output so it might sligtly influencing the speed. Anyway, it all depends on what you need to do and all apprach are correct as long as it works.