fil79 Posted April 8, 2013 at 03:29 PM Report #502153 Posted April 8, 2013 at 03:29 PM (edited) Boas tenho a tabela rotas com os campos id,local1 e local2. Depois tenho a tabela locais com o id e o nome Basicamente quero fazer uma listagem à tabela rotas, que me devolvia o nome do local 1 e 2. Para tal tenho de fazer o join em dois campos da rotas. Qual a melhor maneira de fazer esta query? Desde já agradeço Edited April 8, 2013 at 03:30 PM by fil79 MCITP-MCTS-MCP
HappyHippyHippo Posted April 8, 2013 at 03:33 PM Report #502158 Posted April 8, 2013 at 03:33 PM (edited) select * from rotas as r inner join locais as l1 on r.local1 = l1.id inner join locais as l2 on r.local2 = l2.id Edited April 8, 2013 at 03:34 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
fil79 Posted April 8, 2013 at 03:40 PM Author Report #502164 Posted April 8, 2013 at 03:40 PM é isso, obrigado. Agora uma outra questão, esse sql devolve-me os dois campos "nome" (origem e destino), sem distinção, de alguma forma vou ter de os distinguir para depois os listar. MCITP-MCTS-MCP
HappyHippyHippo Posted April 8, 2013 at 03:45 PM Report #502169 Posted April 8, 2013 at 03:45 PM SELECT l1.nome as l1_nome, l2.nome as l2_nome FROM rotas AS r INNER JOIN locais AS l1 ON r.local1 = l1.id INNER JOIN locais AS l2 ON r.local2 = l2.id IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pmg Posted April 8, 2013 at 03:46 PM Report #502171 Posted April 8, 2013 at 03:46 PM Especifica as colunas que queres que o query devolva (em vez do *) e dá-lhes nomes mais apropriados select tabela1.coluna2 as nome_apropriado, tabela3.coluna2 as outro_nome ... What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
fil79 Posted April 8, 2013 at 03:50 PM Author Report #502172 Posted April 8, 2013 at 03:50 PM $query=" SELECT lug1.name as origem,lug2.name as destino FROM posicao AS p INNER JOIN lugares AS lug1 ON p.lugar_1 = lug1.id INNER JOIN lugares AS lug2 ON p.lugar_2 = lug2.id "; Perfeito, muito obrigado MCITP-MCTS-MCP
fil79 Posted April 8, 2013 at 04:21 PM Author Report #502181 Posted April 8, 2013 at 04:21 PM (edited) agora estou com um novo problema dentro da tabela locais existe um campo distrito, eu queria listar todos os registos dentro de um determinado distrito SELECT lug1.distrito_id,p.preco,lug1.name as origem,lug2.name as destino FROM posicao AS p INNER JOIN lugares AS lug1 ON p.lugar_1 = lug1.id INNER JOIN lugares AS lug2 ON p.lugar_2 = lug2.id WHERE lug1.distrito_id=11 Creio que aquele WHERE deveria fazer esse filtro, mas a verdade é que devolve todos os registos da tabela Edited April 8, 2013 at 04:21 PM by fil79 MCITP-MCTS-MCP
HappyHippyHippo Posted April 8, 2013 at 04:41 PM Report #502188 Posted April 8, 2013 at 04:41 PM dá um contra-axemplo (registos das tabelas que resultado que não deveria aparecer) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
fil79 Posted April 8, 2013 at 04:48 PM Author Report #502194 Posted April 8, 2013 at 04:48 PM não sei se estou a perceber! Se eu por exemplo fizer um select à tabela lugares onde o id é 11, devolve 1000 registos se usar a query acima devolve 3000! MCITP-MCTS-MCP
HappyHippyHippo Posted April 8, 2013 at 04:51 PM Report #502195 Posted April 8, 2013 at 04:51 PM o que impede de existir mais do que um registo na tabela "posicao" com a mesma referência para o mesmo local ? pelos visto existem 3 para cada, até ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
fil79 Posted April 8, 2013 at 04:52 PM Author Report #502196 Posted April 8, 2013 at 04:52 PM pois foi o que pensei, mas está a devolver 3 registos triplicados no sql com o join. Mas parece de facto haver um problema nas tabelas que tenho de verificar MCITP-MCTS-MCP
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now