Computing the Moore-Penrose pseudoinverse of a submatrix Given a rank-$n$ $m\times n$ real matrix $\boldsymbol{A}$ with singular value decomposition 
$$
\boldsymbol{A} = \boldsymbol{U}\boldsymbol{\Sigma} \boldsymbol{V}^T
$$
and an $m \times k$ matrix $\boldsymbol{C}$ whose columns are a subset of the columns of $\boldsymbol{A}$, is there a way to obtain the Moore-Penrose generalized inverse of $\boldsymbol{C}$ efficiently, taking advantage of the fact that I have already computed the SVD of $\boldsymbol{A}$?
Note that if the SVD of $\boldsymbol{C}$ is 
$$
\boldsymbol{C} = \boldsymbol{U}'\boldsymbol{\Sigma}' (\boldsymbol{V}')^T
$$
then the Moore-Penrose generalized inverse of $\boldsymbol{C}$ is
$$
\boldsymbol{C}^+ = \boldsymbol{V}'(\boldsymbol{\Sigma}')^{-1}(\boldsymbol{U}')^T
$$
 A: The inputs are a full column rank matrix $\mathbf{A}^{m\times n}_{n}$ and its singular value decomposition:
$$
\begin{align}
  \mathbf{A} &=
  \mathbf{U} \, \Sigma \, \mathbf{V}^{*} \\
%
 &=
% U 
  \left[ \begin{array}{cc}
     \color{blue}{\mathbf{U}_{\mathcal{R}}} & \color{red}{\mathbf{U}_{\mathcal{N}}}
  \end{array} \right]  
% Sigma
  \left[ \begin{array}{c}
     \mathbf{S}_{n\times n}  \\
     \mathbf{0}  
  \end{array} \right]
% V 
  \left[ \begin{array}{c}
     \color{blue}{\mathbf{V}_{\mathcal{R}}}^{*} 
  \end{array} \right]  \\
%
\end{align}
$$
Colors distinguish $\color{blue}{range}$ spaces from $\color{red}{null}$ spaces.
Think of the input matrix as being column-partitioned like so
$$
  \mathbf{A} = 
\left[ \begin{array}{c|c}
  \mathbf{A}_{1} & \mathbf{A}_{2}
\end{array} \right]
$$
The question is that if we are given $\mathbf{A}$ and its singular value decomposition, can we use that to construct the singular value decomposition of $\mathbf{A}_{1}$?
Special case
The obvious special case is when we miraculously grab all the linearly independent columns in the range space $\color{blue}{\mathcal{R}\left( \mathbf{A} \right)}$:
$$
  \mathbf{A} = 
\left[ \begin{array}{c|c}
  \mathbf{A}_{1} & \mathbf{A}_{2}
\end{array} \right]
%
=
%
  \left[ \begin{array}{c|c}
     \color{blue}{\mathbf{U}_{\mathcal{R}}} & \color{red}{\mathbf{U}_{\mathcal{N}}}
  \end{array} \right]  
$$
In this case, we can construct the SVD and pseudoinverse from existing components.
$$
\begin{align}
%
  \mathbf{A}_{1} &= 
     \color{blue}{\mathbf{U}_{\mathcal{R}}} \,
     \mathbf{S} \,
     \color{blue}{\mathbf{V}^{*}_{\mathcal{R}}}, \\
%
  \mathbf{A}_{1}^{+} &= 
     \color{blue}{\mathbf{V}_{\mathcal{R}}} \,
     \mathbf{S}^{-1} \,
     \color{blue}{\mathbf{U}^{*}_{\mathcal{R}}}. \\
%
\end{align}
$$
