Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal!
Estou tendo uma dificuldade, faço uma aplicação web onde o usuário podem fazer uma solicitação de amizade, mas estou quebrando a cabeça com a lógica na estrutura do banco, fiz uma tabela onde existe os registros de amizade contendo o ID do usuário é o ID do amigo, no select funciona legal, mas quando foi o amigo que adicionou o usuário o ID deste usuário ficara no outro campo da tabela, ou seja existem 2 colunas em que o ID de cada usuário pode estar espalhando entre ambas, se eu fizer um select para pegar onde existir meu ID pega todos os amigos porem ate eu mesmo serei amigo de mim mesmo.
Resumindo:
Teria uma forma de pegar os dados da minha tabela onde existir o ID do usuário mas que não venha esse ID apenas os outros que nó caso são os amigos dele?
nesse fórum achei um cara que fez o mesmo que eu:
http://www.guj.com.br/java/239139-relacionamento-de-tabela-rede-social
Mas ele aparentemente so foi levado em consideração que apenas tal usuário pode adicionar ou que exista uma tabela para cada usuário, logo no select os amigos que nos adicionam não virão ja que eles estarão no campo ID_USER por isso que funciona com esse comando:
SELECT * FROM amizade WHERE ID_USER = 1 and ID_USER_AMIGO = 1 and APROVADO = 1
Pois a lógica é simples: Se vc me adiciona, eu sou seu amigo e vc o meu.
No meu caso fica todas as amizades em uma única tabela.
Cara valeu, o tópico não era bem o que eu procurava mas me esclareceu uma ideia sobre o "UNION", fiz uma consulta de uma coluna onde tinha na outra o ID do usuário e depois fiz outra consulta inversa pegando assim só os amigos:
Aqui esta meu código para ajudar quem está com o mesmo problema, pois já que me ajudaram não custa nada ajudar também:
"SELECT u.USUARIOS_ID, u.USUARIOS_NOME, u.USUARIOS_IMAGEM, a.ID_AMIGO_1 FROM usuarios u INNER JOIN amigos a ON u.USUARIOS_ID = a.ID_AMIGO_1 WHERE ID_AMIGO_2 = '$usuario_id' UNION SELECT u.USUARIOS_ID, u.USUARIOS_NOME, u.USUARIOS_IMAGEM, a.ID_AMIGO_2 FROM usuarios u INNER JOIN amigos a ON u.USUARIOS_ID = a.ID_AMIGO_2 WHERE ID_AMIGO_1 = '$usuario_id'";
OBS: uso "iner join" para pegar os dados dos amigos da tabela amigos!
Contato:
fernandoleafar@yahoo.com.br
Mas tente ler o artigo terá uma base teorica da coisa.
Blz cara, tava dando uma lida, procurei mais sobre a "revista SQL Magazine Edição 38", gostei do tema e pode me ajudar muito com meu projeto, mas os links de conteudo da página:
http://www.devmedia.com.br/revista-sql-magazine-edicao-38/6902
não estão pegando já que não sou ascinante, e não encontrei onde ver ou baixar, é um assunto muito interessante e o melhor é que se aprende muito com isso, mas existe uma forma de conseguir apenas este exemplar sem ser ascinante da revista?
Nao sei.
http://forum.imasters.com.br/topic/392913-busca-de-amigos-em-comum-igual-ao-orkut/