Showing a custom field from one module in another

Scenario:

-We are trying to leverage the Cases module for our implementation
-We have custom fields added to the Contacts module that we would like to show on the Case

So, for example, we have a custom field called “user_name_c” attached to a Contact. If that Contact creates a Case, we would like the “user_name_c” field to appear on the Case (in theory through the relationship that the contact_created_by_id field on the Cases table has with the id_c filed on the contacts_cstm table). I could implement a logic hook to populate another custom field on the Case, but I’d like to avoid storing the data twice.

It seems like this would be an easy thing to do (I am very used to things like SQL joins), but apparently not…can anyone provide insight on how such a thing can done, please?

Many thanks in advance!