How to remove and add joins to a view?
This is an issue I have been sturggling with myself.  You may want to start by looking at hook_views_query_alter() and read this related Drupal Answers question.

Then you can use these functions: views_plugin_query_default to actually affect change on your query.