2.8 : Trouble with materials when joining two meshes
By default, the texture node uses the first UV map in the list. When you join the two objects the two materials find two different UV maps in the new object, but both are using the first one, which is good for one material but bad for the other. So simply tell the second material to use the correct UV map, using an input UV node.

Don't forget to apply (Ctrl A) rotation and scale to both meshes in object mode, before joining.