Como gravar em banco mysql unindo dados de 2 tabelas diferentes - RESOLVIDO

Olá pessoal! Preciso de uma ajudinha ai se possivel.

A cituação é a seguinte: tenho uma aplicação java Desktop que estou fazendo, usando banco mysql. No meu banco eu tenho 2 tabelas sendo elas Associados e Convenios, sendo que na Associados tem idassociados, socio, setor, categoria e na Convenios tem idconvenios, descrição e valor;

Gostaria que na ação de um botão ele automaticamente pegasse os dados da tabela Associados e os dados da tabela Convenios o incluisse em uma terceira tabela organizada da seguinte forma…

idassociados - socio - setor - idconvenios - descricao - valor

De acordo com a categoria de cada socio seja ela categoria 1 ou categoria 2 ele lança o valor cadastrado na tabela convenios no campo valor.

Resumindo: ira lançar o valor da mensalidade para cada socio dependendo a categoria que o socio esta cadastrado.

Espero uma ajuda ai galera!

Tomei a liberdade de adaptar seu banco de dados, pensei em mudar algumas coisas que estavam repetitivas:

A idéia principal foi definir o valor da mensalidade na tabela de categorias, tipo (cat1 = R$25,00) (cat2 = R$50,00);
a Tabela plano representa a tua 3ª tabela, porém adaptada. No caso vc escolhe um socio, um convenio, uma categoria (valor), data de inicio do plano e uma observação.
dá uma analizada:

Não estou afirmando que do meu geito tá certo, acho que se eu fosse fazer ainda faria mais diferente… é só pra discutir-mos …
depois de entra-mos em acordo, vamos pro lado da cdificação…

Ola ferreira, primeiramente obrigado pelo auxilio, entendi seu raciocinio e concordo que tenham dados que possam ser subtraidos
minha duvida é apenas de como faço entao para fazer com que as tabelas se comuniquem entre si?

Desculpe a ignorancia, é que nao tenho tanta experiencia nisso ainda…estou fazendo para aprender cada vez mais sobre programacao.

Vamos ver:

Com essas duas Classes já dá pra fazer algo:

package pacote;

import java.util.Date;

public class PlanoVo {

	private Integer chave;
	private Integer idAssociados;
	private Integer idCategorias;
	private Integer idConvenios;
	private Date data;
	private String Obs;
	
	public PlanoVo() { }
	
	public PlanoVo(Integer idAssociados, Integer idCategorias,
			Integer idConvenios, Date data, String obs) {
		super();
		this.idAssociados = idAssociados;
		this.idCategorias = idCategorias;
		this.idConvenios = idConvenios;
		this.data = data;
		this.obs = obs;
	}
	
	public Integer getChave() { return chave; }
	public void setChave(Integer chave) { this.chave = chave; }

	public Integer getIdAssociados() { return idAssociados; }
	public void setIdAssociados(Integer idAssociados) { this.idAssociados = idAssociados; }

	public Integer getIdCategorias() { return idCategorias; }
	public void setIdCategorias(Integer idCategorias) { this.idCategorias = idCategorias; }

	public Integer getIdConvenios() { return idConvenios; }
	public void setIdConvenios(Integer idConvenios) { this.idConvenios = idConvenios; }

	public Date getData() { return data; }
	public void setData(Date data) { this.data = data; }

	public String getObs() { return Obs; }
	public void setObs(String obs) { Obs = obs; }
	
	@Override
	public String toString() {
		return "Sócio: " + idAssociados + "Convenio: " + idConvenios + "Categoria: " + idCategorias;
	}
	
}
package pacote;

import java.sql.Date;
import java.sql.PreparedStatement;

public class PlanoDao {

public boolean salvar(Integer idassociados, Integer idcategorias, Integer idconvenios, Date data, String obs) {
		
		PlanoVo vo = new PlanoVo(idassociados, idcategorias, idconvenios, data, obs);		
		
		String sql = "INSERT INTO Plano (idassociados, idcategorias, idconvenios, data, obs) VALUES (?,?,?,?,?)";
		
		try {
			PreparedStatement ps = ClasseDeConexao.con.prepareStatement(sql);
			
			ps.setInt(1, vo.getIdAssociados());			
			ps.setInt(2, vo.getIdCategorias());
			ps.setInt(3, vo.getIdConvenios());
			ps.setDate(4, (Date) vo.getData());
			ps.setString(5, vo.getObs());
			
			ps.executeUpdate();
			ps.close();
			return true;
			
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}				 
	}	
}

Segue o codigo para caso alguem precisar;

this.dataAtual(); try { st.executeUpdate("insert into documentos (select 0 as numero, 0 as serie, 0 as prestacao, a.idassociados, a.associado, a.setor, c.idconvenios, c.descricao, c.valor, '"+ dataAtual +"', 'Aberto' as situação, '' as dataBaixa from associados a left join convenios c on(a.categoria = c.idconvenios))"); JOptionPane.showMessageDialog(rootPane, "Gerado com sucesso!"); } catch (SQLException ex) { Logger.getLogger(cadastro_documentos.class.getName()).log(Level.SEVERE, null, ex); }