How to Join two objects properly
In essence when you join objects all Blender does is merge their meshes. If you have 4 objects selected, the last object you clicked will be the dominant Object (In Blender we call it 'Active') . This can have interesting (but probably undesired) effects if the dominant Object has a different modifier stack than the objects being added.

When you join two objects that have different Modifier stacks, the dominant object's modifier stack will be used, and the other modifier  stacks are discarded. This is why you will lose the mirror modifier if the dominant object doesn't have a mirror. To remedy this you would need to apply the modifier on the 'joinees' first, or cut the dominant mesh in two and add a mirror modifier  there.

To emphasize you could test this on a small scene, imagine I have 4 objects with all different modifier stacks

object_1 with modifiers (mirror, subsurf(level=2))
object_2 with modifiers (mirror, subsurf(level=4))
object_3 with modifiers (array modifier, subsurf(level=1))
object_4 with no modifiers


If I select in sequence, object(1,2,3,4) , then all associated meshes are added to object 4's mesh, and because object 4 has no modifiers all modifiers are dropped.