Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alexbecher

Filtros em tabelas MYSQL

Recommended Posts

Pessoal boa noite,

 

Estou com um pequeno problema:

 

Tenho duas tabelas em meu banco de dados , umas se chama users e outras usercomp. Abaixo coloco detalhes das duas:

 

tabela users:

UserId - UserName

 

tabela usercomp:

UserId - UserName

 

O problema é o seguinte , preciso fazer um filtro na tabela users , que me mostre todos os usuários cujo UserId esteja contido na tabela usercomp como UserId.

 

Ou seja , quero somente os usuários que tenham um vínculo com a tabela usercomp através da coluna UserId.

 

Aguardo vocês .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá alexbecher,

 

Você conseguirá obter o resultado desejado realizando a consulta com um inner join.

 

Select a.*
from tabela_a as a
inner join tabela_b as b on a.id = b.id

Abraços.

 

_ _

Fabiano Abreu

Papo Sql - Um blog com tutoriais, dicas e truques sobre SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela sua resposta Fabiano , mais não entendi este "as a " qual a função dessa variável ?



Fabiano eu fiz como vc mandou , porem retornou um erro

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UsAck='' or usercomp.UsConv='' and usercomp.UsAck='userssalt.UserIdSalt' ORDER B' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá rockrgo , muito obrigado por responder minha dúvida , porém fiz como vc mandou :

 

 

 

Select a.* from users a, usercomp b where a.UserId = b.UserId;

 

 

e está repetindo os usuários da tabela users pela quantidade de registros da tabela usercomp, ou seja cada usuário filtrado está sendo exibido pela mesma quantidade de registros da tabela usercomp , acredito que pelo produto cartesiano de tabela (users)x tabela(usercomp).

 

Eu não tenho muito conhecimento em mysql , mais eu acho que é meio difícil fazer um filtro assim!

Deixo com vcs ai!!!

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

desta forma que havia falado ele busca todos os dados mesmo, achei que fosse a intenção. Mas pelo que entendi vc só quer que traga uma vez. Na tabela user existe mais de um cadastro para cada usuario ? se quiser trazer apenas uma linha pode usar um group by, mas não sei como irão ficar as demais informações.

 

testa aí e ve como fica

 

Select a.* from users a, usercomp b where a.UserId = b.UserId group by a.UserId;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.