Update com Join

QUando tento fazer uma alteração em um registro
ele está alterando todos, alguem sabe me dizer aonde estou errando

procurei meios de utilizar um update com join porem esse foi o unico que consegui

segue o codigo, acredito que é na hora do join no update mais nao to conseguindo fazer de outra forma
a, o banco que uso é o postgres

<% }
		   else 
		   {
		   
	   String sqlfuncionario = ("update funcionario set fun_foto='"+request.getParameter("tf_foto")+
	   "',"+"fun_cargo='"+request.getParameter("lista_cargo")+
	   "' where fun_codigo="+request.getParameter("tf_codigo"));


	   String sqltelefone = ("update telefone set tel_numero='"+request.getParameter("tf_numerotelefone")+
	   "',"+"tel_ddd='"+request.getParameter("tf_ddd")+
	   "',"+"tel_tipo='"+request.getParameter("tf_tipo")+
	   "' from telefone t inner join pessoa p on t.tel_pessoa = p.pes_codigo inner join funcionario f on p.pes_codigo = f.fun_pessoa where f.fun_codigo="+request.getParameter("tf_codigo"));
	    
	   
	   String sqlendereco = ("update endereco set end_numero='"+request.getParameter("tf_numeroendereco")+
	   "',"+"end_cep='"+request.getParameter("tf_cep")+
	   "',"+"end_bairro='"+request.getParameter("tf_bairro")+
	   "',"+"end_cidade='"+request.getParameter("tf_cidade")+
	   "',"+"end_uf='"+request.getParameter("tf_uf")+
	   "',"+"end_rua='"+request.getParameter("tf_rua")+
	   "',"+"end_complemento='"+request.getParameter("tf_complemento")+
	   "' from endereco e inner join pessoa p on e.end_pessoa = p.pes_codigo inner join funcionario f on p.pes_codigo = f.fun_pessoa where f.fun_codigo="+request.getParameter("tf_codigo"));
	   
	   String sqlpessoa = ("update pessoa set pes_nome='"+request.getParameter("tf_nome")+
	   "',"+"pes_rg='"+request.getParameter("tf_rg")+
	   "',"+"pes_cpf='"+request.getParameter("tf_cpf")+
	   "',"+"pes_datanascimento='"+request.getParameter("tf_datanascimento")+
	   "',"+"pes_datacadastro='"+request.getParameter("tf_datacadastro")+
	   "',"+"pes_sexo='"+request.getParameter("rb_sexo")+
	   "' from pessoa p inner join funcionario f on p.pes_codigo = f.fun_pessoa where f.fun_codigo="+request.getParameter("tf_codigo"));
					  
					  
					st.executeUpdate(sqlfuncionario);
					st.executeUpdate(sqltelefone);
					st.executeUpdate(sqlendereco);
					st.executeUpdate(sqlpessoa);
			  	    response.sendRedirect("funcionario.jsp");
				  
	   
		     
		}%>
</body>
</html>

alguem?