Dúvida SQL Consulta
29/11/2017
0
Boa tarde,
Tenho 3 tabelas: CIDADES/CLIENTES e VIAGENS
Na tabela CIDADES está salvo todas as cidades, na tabela CLIENTES, está sendo salvo todos os dados do cliente, na tabela auxiliar(viagens) está sendo salvo o idViagem, idCliente, idCidade.
Exemplo:
CIDADES:
+----------------+--------------+
| idCidade | nome |
+----------------+--------------+
| 1 |Sao Paulo |
+----------------+--------------+
CLIENTES
+----------------+--------------+
| idCliente | nome |
+----------------+--------------+
| 1 |Armando |
+----------------+--------------+
| 2 |Bruno |
+----------------+--------------+
VIAGEM:
+----------------+--------------+------------+
| idViagem | idCliente | idCidade|
+----------------+--------------+------------+
| 1 | 2 | 1 |
+----------------+--------------+------------+
Desejo uma consulta que mostre a tabela viagem dessa maneira:
+----------------+--------------+------------+
| idViagem | idCliente | idCidade|
+----------------+--------------+------------+
| 1 | Bruno |Sao Paulo|
+----------------+--------------+------------+
Deve ser feito com INNER JOIN ? ou qual maneira ?
Tenho 3 tabelas: CIDADES/CLIENTES e VIAGENS
Na tabela CIDADES está salvo todas as cidades, na tabela CLIENTES, está sendo salvo todos os dados do cliente, na tabela auxiliar(viagens) está sendo salvo o idViagem, idCliente, idCidade.
Exemplo:
CIDADES:
+----------------+--------------+
| idCidade | nome |
+----------------+--------------+
| 1 |Sao Paulo |
+----------------+--------------+
CLIENTES
+----------------+--------------+
| idCliente | nome |
+----------------+--------------+
| 1 |Armando |
+----------------+--------------+
| 2 |Bruno |
+----------------+--------------+
VIAGEM:
+----------------+--------------+------------+
| idViagem | idCliente | idCidade|
+----------------+--------------+------------+
| 1 | 2 | 1 |
+----------------+--------------+------------+
Desejo uma consulta que mostre a tabela viagem dessa maneira:
+----------------+--------------+------------+
| idViagem | idCliente | idCidade|
+----------------+--------------+------------+
| 1 | Bruno |Sao Paulo|
+----------------+--------------+------------+
Deve ser feito com INNER JOIN ? ou qual maneira ?
Igor Ferreira
Curtir tópico
+ 0
Responder
Post mais votado
30/11/2017
Boa noite Igor.
Isso mesmo.
Tem que fazer um INNER JOIN entre essas 3 tabelas
Na sua query, você pode começar por qualquer tabela.
Uma dica é começar pela tabela auxiliar onde vc amarra as outras duas.
Fiicaria assim:
Grande aabraço
Isso mesmo.
Tem que fazer um INNER JOIN entre essas 3 tabelas
Na sua query, você pode começar por qualquer tabela.
Uma dica é começar pela tabela auxiliar onde vc amarra as outras duas.
Fiicaria assim:
SELECT VI.IDVIAGEM , CL.NOME AS CLIENTE -- APELIDO PARA O CAMPO , CI.NOME AS CIDADE -- APELIDO PARA O CAMPO FROM VIAGEM AS V -- AS VI É O ALIAS / APELIDO DA SUA TABELA INNER JOIN CLIENTE AS CL -- AMARRA O CLIENTE ON VI.IDCLIENTE = CL.IDCLIENTE -- ATRAVES DAS COLUNAS INNER JOIN CIDADES AS CI -- AMARRA A CIDADE ON VI.IDCIDADE = CI.IDCIDADE -- ATRAVES DAS COLUNAS
Grande aabraço
Luiz Santos
Responder
Mais Posts
30/11/2017
Igor Ferreira
Mano, obrigado.
Tinha uma dúvida exatamente sobre quais tabelas amarrar, obrigado, ajudou muito !
Abraço.
Tinha uma dúvida exatamente sobre quais tabelas amarrar, obrigado, ajudou muito !
Abraço.
Responder
19/08/2021
Vania Claudino
Bom dia estou fazendo uma consulta sql só que adicionei uma busca mas o loop está muito demorado, podem me ajudar com alguma dica.
Segue a consulta:
select sum(ent.preco_total_item_ent) from itens_nota_ent ent inner join nota_fiscal_ent
nfe on ent.nf_item_ent = nfe.n_nf_ent inner join produtos prod on
(prod.COD_BARRAS_PRODUTO = ent.COD_EAN_ITEM_ENT or prod.COD_BARRAS_CAIXA_PRODUTO = ent.COD_EAN_ITEM_ENT) inner join clientes c
on nfe.CNPJ_CLIENTE_FORN_ENT = c.CNPJ INNER JOIN vendedores_cliente vc
on c.COD_CLIENTE = vc.COD_CLIENTE_VC
where (ent.cfop_item_ent = '5202' or ent.cfop_item_ent = '6202' or ent.cfop_item_ent = '5411'
or ent.cfop_item_ent = '6411') AND nfe.data_emissao_nf_ent >= '01.07.2021'
and nfe.data_emissao_nf_ent <= '19.08.2021' and nfe.baixada_nf_ent = 1
AND nfe.CNPJ_CLIENTE_FORN_ENT = '12267147000474'
group by nfe.n_nf_ent, nfe.data_emissao_nf_ent, nfe.cliente_forn_nf_ent
OBS: Esse (or prod.COD_BARRAS_CAIXA_PRODUTO = ent.COD_EAN_ITEM_ENT) que está gerando a demora, mas preciso dele para a busca ser precisa.
Se souberem outra forma de simplificar a busca e deixar menos lento, comentem por favor.
OBG.
Segue a consulta:
select sum(ent.preco_total_item_ent) from itens_nota_ent ent inner join nota_fiscal_ent
nfe on ent.nf_item_ent = nfe.n_nf_ent inner join produtos prod on
(prod.COD_BARRAS_PRODUTO = ent.COD_EAN_ITEM_ENT or prod.COD_BARRAS_CAIXA_PRODUTO = ent.COD_EAN_ITEM_ENT) inner join clientes c
on nfe.CNPJ_CLIENTE_FORN_ENT = c.CNPJ INNER JOIN vendedores_cliente vc
on c.COD_CLIENTE = vc.COD_CLIENTE_VC
where (ent.cfop_item_ent = '5202' or ent.cfop_item_ent = '6202' or ent.cfop_item_ent = '5411'
or ent.cfop_item_ent = '6411') AND nfe.data_emissao_nf_ent >= '01.07.2021'
and nfe.data_emissao_nf_ent <= '19.08.2021' and nfe.baixada_nf_ent = 1
AND nfe.CNPJ_CLIENTE_FORN_ENT = '12267147000474'
group by nfe.n_nf_ent, nfe.data_emissao_nf_ent, nfe.cliente_forn_nf_ent
OBS: Esse (or prod.COD_BARRAS_CAIXA_PRODUTO = ent.COD_EAN_ITEM_ENT) que está gerando a demora, mas preciso dele para a busca ser precisa.
Se souberem outra forma de simplificar a busca e deixar menos lento, comentem por favor.
OBG.
Responder
Clique aqui para fazer login e interagir na Comunidade :)