Valdilei Postado Fevereiro 18, 2008 Denunciar Share Postado Fevereiro 18, 2008 (editado) Olá pessoal,Como fazer o seguinte select?Tenho duas tabelas com 11 colunas de mesmo nomes (id, a1, a2....,a10) e preciso fazer uma consulta na Tabela b mostrando as linhas que são iguais as das Tabela a, valendo a partir de a1, ou seja, as 10 colunas.alguém tem uma idéia?Obrigado. Editado Fevereiro 18, 2008 por Valdilei Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Fevereiro 19, 2008 Denunciar Share Postado Fevereiro 19, 2008 alguém tem uma idéia?Oi Valdinei!A idéia é esta:Tabela2 id a1 a2 a3 1 aa be ch 2 bb dd dd 3 aa aa aa 4 xx be aa 5 bb dd dd SELECT * FROM Tabela2 WHERE a1 = (SELECT a1 FROM tabela2 GROUP BY a1, a2, a3 HAVING COUNT(id) > 1 ) Linhas retornadas Tabela2 id a1 a2 a3 2 bb dd dd 5 bb dd ddAcrescente os campos conicidentes na cláusula GROUP BY Link para o comentário Compartilhar em outros sites More sharing options...
0 Valdilei Postado Fevereiro 19, 2008 Autor Denunciar Share Postado Fevereiro 19, 2008 Denis,Obrigado! Mas to com dúvidas. O select é em duas tabelas,procurando as linhas da tabela2 que estão na tabela1, então pelo entendi tenho que unir as duas pra fazer o select que você sugeriu, certo? Outra coisa eu quero manter o id da tabela2. No exemplo dado, foram retonados os ids 2 e 5. Queria retornar só a linha da tabela2, no caso seria a do id 5 supondo que fosse da tabela2.N sei se fui claro, mas é isso. Você pode me ajudar?Abraço. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Fevereiro 19, 2008 Denunciar Share Postado Fevereiro 19, 2008 Oi, Valdilei! Mas to com dúvidas. O select é em duas tabelas,procurando as linhas da tabela2 que estão na tabela1, então pelo entendi tenho que unir as duas pra fazer o select que você sugeriu, certo? Não. Veja resposta completa abaixoOutra coisa eu quero manter o id da tabela2. No exemplo dado, foram retonados os ids 2 e 5. Queria retornar só a linha da tabela2, no caso seria a do id 5 supondo que fosse da tabela2.Neste caso o select é um pouco diferente. Ele usará um INNER JOIN e será assim:Supondo que a estrutura da tabela1 seja igual a tabela2 mas os registros estejam em ordem diferente. tal como abaixoNota a tabela2 já foi mencionada no post anterior.Tabela1 id a1 a2 a3 1 bb dd dd 2 aa be ch 3 aa aa aa 4 bb da dd 5 xx be aa SELECT t1.id, t2.id FROM tabela1 t1 INNER JOIN tabela2 t2 ON t1.a1=t2.a1 and t1.a2=t2.a2 and t1.a3=t2.a3 and t1.a4=t2.a4 O retorno seria assim: t1.id t2.id 1 2 1 5 2 1 3 3 5 4 Link para o comentário Compartilhar em outros sites More sharing options...
0 Valdilei Postado Fevereiro 20, 2008 Autor Denunciar Share Postado Fevereiro 20, 2008 Oi Denis!Consegui selecionar. Mas se eu quizer deixar na mesma ordem como nas linhas da tabela2, como faço?Com o select acima fica assim:retorno:id a1 a2 a32 1 2 51 2 3 4O retorno fica ordenado em ordem crescente dos elementos a1, a2 e a3....Para ficar assim:retornoid a1 a2 a31 2 3 42 1 2 5Como faço:Obrigado. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Fevereiro 20, 2008 Denunciar Share Postado Fevereiro 20, 2008 Oi, Valdilei!Simplesmente acrescente a cláusula ORDER BY após a linha do JOIN.Deste jeito:SELECT t1.id, t2.id FROM tabela1 t1 INNER JOIN tabela2 t2 ON t1.a1=t2.a1 and t1.a2=t2.a2 and t1.a3=t2.a3 and t1.a4=t2.a4 ORDER BY t2.id Link para o comentário Compartilhar em outros sites More sharing options...
0 Valdilei Postado Fevereiro 25, 2008 Autor Denunciar Share Postado Fevereiro 25, 2008 Denis,Muito obrigado! Era isso mesmo que precisava. Resolvido. Valeu!!!!!!!Abraço. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Valdilei
Olá pessoal,
Como fazer o seguinte select?
Tenho duas tabelas com 11 colunas de mesmo nomes (id, a1, a2....,a10) e preciso fazer uma consulta na Tabela b mostrando as linhas que são iguais as das Tabela a, valendo a partir de a1, ou seja, as 10 colunas.
alguém tem uma idéia?
Obrigado.
Editado por ValdileiLink para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados