To begin with, I think the following is more natural for the full plot
ContourPlot3D[{x^2 + z^2 - 400, y^2 + z^2 - 400}, {x, -50,
50}, {y, -50, 50}, {z, -50, 50},
ContourStyle -> {Opacity[1], Opacity[1]}]

And we can dissect different parts of it
one = RegionPlot3D[{x^2 + z^2 - 400 >= 0 &&
y^2 + z^2 - 400 >= 0}, {x, -50, 50}, {y, -50, 50}, {z, -50, 50},
Mesh -> None]

two = RegionPlot3D[{x^2 + z^2 - 400 >= 0 &&
y^2 + z^2 - 400 <= 0}, {x, -50, 50}, {y, -50, 50}, {z, -50, 50},
Mesh -> None, PlotPoints -> 75]

three = RegionPlot3D[{x^2 + z^2 - 400 <= 0 &&
y^2 + z^2 - 400 >= 0}, {x, -50, 50}, {y, -50, 50}, {z, -50, 50},
Mesh -> None, PlotPoints -> 75]

And finally
four = RegionPlot3D[{x^2 + z^2 - 400 <= 0 &&
y^2 + z^2 - 400 <= 0}, {x, -50, 50}, {y, -50, 50}, {z, -50, 50},
Mesh -> None, PlotPoints -> 75]

You can use Show
to combine the different bits
Show[three, four]
