Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
maxm.ro Aprendiz

Registrado: Sexta-Feira, 27 de Abril de 2007 Mensagens: 199
|
Enviada: Sáb Set 29, 2007 2:18 pm Assunto: consulta em Varias tabelas do bd!!! |
|
|
o problema é o seguinte:
tenho 4 tabelas de cadastro de clientes
1 - DadosCadastro;
2 - Endereços;
3 - LocalTrabalho;
4 - CodSecundario;
blza... existem um campo em cada uma dessas tabelas q liga elas(NumRegistroUnico) ou seja estão relacionadas atravez desse Num...
assim oque desejo fazer é ua consulta, que possa selecionar os dados de um cliente, por exemplo:
seleciono ocliente com registro nº. 12, então ele deve localizar esse dados nas quatro tabelas, pois o registro dele vai constar em todas, assim eu fiz um simples codigod e consulta, só que pra mostrar os dados tive que usar 4 DBGrids, um para cada tabela.
Quero saber se é possivel mostrar esse dados em somente uma grid?
Agradeço a ajuda... |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sáb Set 29, 2007 5:00 pm Assunto: |
|
|
Bom vc não postou a estrutura das tabelas envolvidas logo assim fiza apenas um exemplo aqui, pra vc adaptar ai.
Tabela Empresa E
id_empresa integer
empresa var(50)
tabela Funcionario F
id_ func integer
nome var(50)
id_empresa Integer
Com o INNER JOIN
Código: | select E.id_empresa, E.empresa, F.id_func, F.nome from empresa E
inner join funcionarios F on F.id_empresa = E.id_empresa |
Este select é simples
Com o INNER JOIN posso mostrar apenas os dados que tem na tabela Empresa e a tabela funcionarios.
Com o LEFT JOIN
Código: | select E.id_empresa, E.empresa, F.id_func, F.nome from empresa E
left join funcionarios F on F.id_empresa = E.id_empresa |
Este select é simples
Com o LEFT JOIN posso mostrar todas empresas que tem no banco de dados da tabela Empresas e apenas os dados que tem na tabela Funcionarios, os quais não tem na tabela Funcionarios mostra como nulos.
Blz
Espero ter ajudado. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
maxm.ro Aprendiz

Registrado: Sexta-Feira, 27 de Abril de 2007 Mensagens: 199
|
Enviada: Sáb Set 29, 2007 10:20 pm Assunto: blza, |
|
|
só uma coisa que não entendi direito, pra mostrar isso eu teria que ter 2 Grids não é ? um para os dados da tabela EMPRESA e outro para FUNCIONARIO.
vlw e obrgado pela ajuda... |
|
Voltar ao Topo |
|
 |
joao_arthur Profissional


Registrado: Sexta-Feira, 10 de Novembro de 2006 Mensagens: 687 Localização: Fortaleza-CE
|
Enviada: Dom Set 30, 2007 3:11 pm Assunto: |
|
|
isso é uma consulta só então você pode usar somente um DBGrid
Dica: Nomei os campos
ex.: select coun(*) as 'Quantidade' from tabela _________________ João Arthur. |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Dom Set 30, 2007 6:38 pm Assunto: Re: blza, |
|
|
maxm.ro escreveu: | só uma coisa que não entendi direito, pra mostrar isso eu teria que ter 2 Grids não é ? um para os dados da tabela EMPRESA e outro para FUNCIONARIO.
vlw e obrgado pela ajuda... | Não amigo, este JOIN é para juntar as duas tabelas num só grid.
Exemplo como vai aparecer no grind
Citação: | ID_EMPRESA-------EMPRESA---------ID_FUNC--------NOME
1--------------------MATHIAS LTDA-----1--------------JOÃO CARLOS
1--------------------MATHIAS LTDA-----2--------------PEDRO LOPES
2--------------------SANTOS LTDA------1--------------FRANCISCO |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
|