Prencher Formulario com pesquisa de duas tabela mysql

8 respostas
V

Pessoal, estou fazendo um TCC, e esbarrei no seguinte problema:
Tenha o formulário de vendas de onde é gravado no BD os dados da venda.
Onde é gravado somente o id do Vendedor, id do Cliente, e id do produto - quantidade - vlrUnitário.
A questão é a seguinte: Numa eventual pesquisa de venda.
Quando digito o código da venda no campo de pesquisa só aparece nos campos ids os id do Cliente e o id do Vendedor, gostaria de uma ajuda para aparecer juntamente com o id do vendedor também os respectivos nomes.
Alguém ai pode me dar uma luz como fazer isso?

8 Respostas

E

Você vai ter que alterar sua pesquisa,
provavelmente o primeiro problema está na consulta de SQl :wink:

Tenta dar uma olhada no google em exemplos de modelagem de dados e relacionamento entre tabelas
Ex: http://blog.thiagobelem.net/relacionamento-de-tabelas-no-mysql/
http://social.msdn.microsoft.com/Forums/pt/transactsqlpt/thread/d85d35b4-1bb3-4f23-b061-db3ff6640107

M

Bom dia…

se eles estão em duas tabelas diferentes…vc vai ter que juntar…

ou seja vai ter quer fazer o inner join na tabela…

verifique se as duas tabelas tem algum relacionamento…

SELECT table_name1.nome(nome da tabela 1),table_name2.outraColunaDaTabelaDois FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name

espero ter ajudado

R

Como marcelo disse:

Nos JOINs, a coisa mais importante é um relacionamento entre as tabelas, logo, verifique se a tabela cliente tem alguma chave estrangeira que referencia a tabela vendedor, ou vice-versa, ou até uma terceira tabela que tenha atributos de ambas, voce pode ate criar uma tabela “pesquisa” ou “venda”, onde irá armazenar as informacoes da venda, como cliente que comprou, vendedor que atendeu o cliente, os produtos comprados, e etc, com relacionamento nas 2 tabelas.

Boa sorte =D

V

Sim minhas tabelas estao relacionadas, ja tenho a consulta, no mysql funciona belezinha juntas todas as informaçoes, não estou sabendo carregar estas informações no jlist para depois carregar no form.

R

Mano, vou te falar o que aconteceu uma vez comigo, nao sei se é o seu problema.

Uma vez, estava escrevendo um codigo, usando inner join. Fiquei batendo cabeça porque usando na mao, retornava tudo certinho, quando passava pro form nao vinha, ate que certo dia (demorei pra resolver essa parada), verifiquei que as colunas da tabela X tinham o mesmo nome da tabela Y, o que nao tem problema, so que, no inner join, como ele traz os dados de ambas as tabelas, ele insere uma tabela, e depois a outra, verifiquei que ele tava renomeando o nome das colunas no resultado para diferenciar as tabelas, resolvi filtrar mais a consulta para nao ocorrer isso e consegui resolver. Como nao sei se seu problema é esse, estou sugerindo que verifique isso, que é algo muito dificil de acontecer, como eu sou um cara de sorte ¬¬ esse tipo de coisa acontece comigo t_t…heheheh…bom, segue uma possivel duvida.

N

Opa, Vandinho_lima, beleza?

Eu vejo duas soluções para o seu problema:

1. Você criar uma classe genérica que represente os dados dessas duas tabelas e, ao preenchê-la, fazer uma consulta usando a cláusula UNION entre elas:
SELECT
T1.ID, T1.NOME DESCRICAO
FROM
DBO.TABELA1 T1

UNION

SELECT
T2.ID, T2.TITULO DESCRICAO
FROM
DBO.TABELA2 T2
public class ClasseGenericaDasTabelas {

    private long ID;
    private String descricao;
}
2. Você pode ter classes diferentes para cada uma das tabelas e pode criar algo como um "ViewModel", que junte os dados dessas classes e exiba para sua JList:
//Consulta na tabela 1
SELECT
T1.ID, T1.NOME
FROM
DBO.TABELA1 T1

// Consulta na tabela 2
SELECT
T2.ID, T2.TITULO
FROM
DBO.TABELA2 T2
public class ClasseTabelaUm {
    private long ID;
    private String nome;
}

public class ClasseTabelaDois {
    private long ID;
    private String titulo;
}
public class TabelaViewModel {
    private long ID;
    private String descricao;
}
public class TabelasRepository {

    public List<TabelaViewModel> recuperarDadosTabelas() throws SQLException {
    
        List<ClasseTabelaUm> listaTabelaUm = TabelaUmDAO.recuperarDados();
        List<ClasseTabelaDois> listaTabelaDois = TabelaDoisDAO.recuperarDados();

        List<TabelaViewModel> listaTabelas = new ArrayList<TabelasViewModel>();

        for (ClasseTabelaUm classeUm : listaTabelaUm) {
            TabelaViewModel tabelaModelUm = new TabelaViewModel();
            tabelaModelUm.setID(classeUm.getID());
            tabelaModelUm.setDescricao(classeUm.getNome());

            listaTabelas.add(tabelaModelUm);
        }

        for (ClasseTabelaDois classeDois : listaTabelaDois) {
            TabelaViewModel tabelaModelDois = new TabelaViewModel();
            tabelaModelDois.setID(classeDois.getID());
            tabelaModelDois.setDescricao(classeDois.getTitulo());

            listaTabelas.add(tabelaModelDois);
        }

        return listaTabelas;
    }
}

OBS.: A segunda solução você pode fazer se estiver trabalhando com uma arquitetura ViewModel, a qual eu acho super bacana.

Espero ter ajudado,
fique com Deus! :D

V

Beleza…
Obrigado,
Ainda não implementei a sua segunda sugestão, mas pelo q vi é exatamente isso q estava prescisando…
vou implementar e depois comento o resultado…

N

É uma solução interessante. Você não trabalha com seus objetos de negócio diretamente, e sim com “ViewModels”, os quais transparecem esses objetos de forma intuitiva para a View. Vale a pena dar uma conferida. :smiley:

Criado 14 de outubro de 2012
Ultima resposta 15 de out. de 2012
Respostas 8
Participantes 5