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?
Prencher Formulario com pesquisa de duas tabela mysql
8 Respostas
Você vai ter que alterar sua pesquisa,
provavelmente o primeiro problema está na consulta de SQl 
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
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
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
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.
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.
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;
}
//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
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…
É 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. 