JIAP Posted November 29, 2006 Report Share Posted November 29, 2006 Tudo bom pessoal? Meu primeiro post aqui :D É o seguinte, tenho duas tabelasCIDADECod_Cidade (PK)Nome_CidadePERCURSOCod_Percurso (PK)Cod_Cidade_Origem (FK)Cod_Cidade_Destino (FK)Preciso fazer uma Consulta para saber o nome das cidades de origem e destino quando o Cod_Percurso for igual a um determinado valor.Obrigado pela ajuda pessoal!Exemplo de DadosCIDADECod_Cidade | Nome_Cidade01 São Paulo02 Rio de JaneiroPERCURSOCod_Percurso | Cod_Cidade_Origem | Cod_Cidade_Destino23 01 02 Quote Link to comment Share on other sites More sharing options...
0 .Andreia. Posted November 29, 2006 Report Share Posted November 29, 2006 Seja bem-vindo.veja se assim te ajuda:select c.cidade from cidade c inner join percurso p on c.cod_cidade = p.Cod_Cidade_Origem where c.cod_percurso = 23 Quote Link to comment Share on other sites More sharing options...
0 JIAP Posted November 29, 2006 Author Report Share Posted November 29, 2006 Obrigado andreia_sp!Eu editei minha pergunta, não sei se vai alterar a sua resposta.Esqueci de mencionar que preciso do nome da cidade de origem e destino.Ainda não testei o que me passou pois estou em horário de almoço.Obrigado pela ajuda. Quote Link to comment Share on other sites More sharing options...
0 .Andreia. Posted November 29, 2006 Report Share Posted November 29, 2006 é só adicionar os campos para serem exibidos:select c.cidade, p.Cod_Cidade_Origem, p.Cod_Cidade_Destino from cidade c inner join percurso p on c.cod_cidade = p.Cod_Cidade_Origem where c.cod_percurso = 23 Quote Link to comment Share on other sites More sharing options...
0 JIAP Posted November 29, 2006 Author Report Share Posted November 29, 2006 Obrigado pela atençãoExecutei esse sql e me retornou o código da cidade de destino e de origem. E o nome de uma cidade.Como faço para me retornar o nome da cidade de destino e origem?Obrigado mais uma vez! Quote Link to comment Share on other sites More sharing options...
0 .Andreia. Posted November 29, 2006 Report Share Posted November 29, 2006 eu marquei errado, onde está cidade é Nome_Cidade, ou seja:select c.nome_cidade, p.Cod_Cidade_Origem, p.Cod_Cidade_Destino from cidade c inner join percurso p on c.cod_cidade = p.Cod_Cidade_Origem where c.cod_percurso = 23o nome da cidade de destino e origem está em outra tabela? Quote Link to comment Share on other sites More sharing options...
0 JIAP Posted November 29, 2006 Author Report Share Posted November 29, 2006 O nome da cidade de origem e destino está na tabela CIDADEExecutando essa sql, vou ter só o nome de uma cidade.Como buscar o nome das duas cidades?Obrigado! Quote Link to comment Share on other sites More sharing options...
0 .Andreia. Posted November 29, 2006 Report Share Posted November 29, 2006 Note que o filtro foi pelo cod_percuso=23. Por isso que aparece somente 1 registro. Caso voce queira que mostre os registros da tabela cidade mesmo quando não retornar resultado da tabela percurso, use o Left join:select c.nome_cidade, p.Cod_Cidade_Origem, p.Cod_Cidade_Destino from cidade c left join percurso p on c.cod_cidade = p.Cod_Cidade_Origem where c.cod_percurso = 23para exibir os outros campos é só colocar os nomes deles, caso perteçam à tabela de cidade é só colocar na frente do nome do campo o c. Quote Link to comment Share on other sites More sharing options...
0 JIAP Posted November 29, 2006 Author Report Share Posted November 29, 2006 Exato, quero que me retorne somente um registro. Mas nessa tupla precisa ter os campos:Codigo_Percurso, NomeCidadeOrigem, NomeCidadeDestino23 | são Paulo | Rio de JaneiroNakela sql que me passou, ela retorna o seguinte:são Paulo | 01 | 02Valeu d+ aí a atenção. Quote Link to comment Share on other sites More sharing options...
0 .Andreia. Posted November 29, 2006 Report Share Posted November 29, 2006 Supondo que os campos NomeCidadeOrigem e NomeCidadeDestino estejam na tabela cidade:select c.nome_cidade, c.NomeCidadeOrigem, c.NomeCidadeDestino from cidade c left join percurso p on c.cod_cidade = p.Cod_Cidade_Origem where c.cod_percurso = 23 Quote Link to comment Share on other sites More sharing options...
0 JIAP Posted November 29, 2006 Author Report Share Posted November 29, 2006 Desculpe aí a trabalheira. Acho que eu estou me expressando errado.Vou ilustrar minha dúvida.Minhas tabelas são essas:Figura 1As tabelas com dados e o resultado do SelectFigura 2Espero que tenho sido mais claro agora.Muito obrigado! Quote Link to comment Share on other sites More sharing options...
0 .Andreia. Posted November 29, 2006 Report Share Posted November 29, 2006 e em que tabela estao os campos NomeCidadeOrigem e NomeCidadeDestino ? Quote Link to comment Share on other sites More sharing options...
0 JIAP Posted November 29, 2006 Author Report Share Posted November 29, 2006 Só existe o campo Nome_Cidade na tabela CIDADENome_Cidade_Destino e Nome_Cidade_Origem é um alias.Como na tabela PERCURSO tem duas chaves estrangeiras de uma mesma tabela, então é preciso usar um rolename para não ter dois campos iguais. Quote Link to comment Share on other sites More sharing options...
0 .Andreia. Posted November 29, 2006 Report Share Posted November 29, 2006 opa foi mal, hoje to com raciocinio lento rsss, tente agora:select p.codigo_percurso, c.nome_cidade [Cidade destino], c2.nome_cidade [Cidade origem] from percurso p inner join cidade c on c.codigo_cidade = p.codigo_cidade_destino inner join cidade c2 on c2.codigo_cidade = p.codigo_cidade_origem where p.codigo_percurso = 23 Quote Link to comment Share on other sites More sharing options...
0 JIAP Posted November 30, 2006 Author Report Share Posted November 30, 2006 PERFEITO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :D :D :D :D :D Muito, muito obrigado!Ficou em cima!!!!!!!Agradeço muito a ajuda.Abraço! Quote Link to comment Share on other sites More sharing options...
Question
JIAP
Tudo bom pessoal? Meu primeiro post aqui :D
É o seguinte, tenho duas tabelas
CIDADE
Cod_Cidade (PK)
Nome_Cidade
PERCURSO
Cod_Percurso (PK)
Cod_Cidade_Origem (FK)
Cod_Cidade_Destino (FK)
Preciso fazer uma Consulta para saber o nome das cidades de origem e destino quando o Cod_Percurso for igual a um determinado valor.
Obrigado pela ajuda pessoal!
Exemplo de Dados
CIDADE
Cod_Cidade | Nome_Cidade
01 São Paulo
02 Rio de Janeiro
PERCURSO
Cod_Percurso | Cod_Cidade_Origem | Cod_Cidade_Destino
23 01 02
Link to comment
Share on other sites
14 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.