Blod 0 Denunciar post Postado Setembro 18, 2011 Olá pessoal do iMasters, tenho um problema que não estou conseguindo resolver... Tento uma tabela de usuários cadastrados chamada usr_users ela contém: usr_id - int usr_login - Varchar usr_senha - varchar Tenho também a tabela stream_friend: id - int usr_id - varchar friend_id - varchar E tenho a tabela stream_posts: id- int usr_id - varchar texto - text E o meu problema é assim, o usuário (tabela usr_users) vai poder adicionar amigos e na sua página deve aparecer as postagens (tabela stream_posts) somente de seus amigos (tabela stream_friend) e não estou conseguindo fazer isso com uma única consulta, poderiam me auxiliar ? Grato. OBS: A tabela stream_friend vai conter vários dados //Exemplo id (id normal Auto increment) friend_id (id do amigo que ele adicionou) usr_id (id da pessoa que adicionou aquele amigo) //Então 1 usuário poderá ter até 200 linhas na tabela stream_friend Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Setembro 18, 2011 Mostre como você está fazendo. Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Setembro 18, 2011 Eu tentei assim mais não deu... SELECT * FROM usr_users usr, stream_post pos INNER JOIN stream_friend usp ON usr.usr_id = usp.usr_id WHERE usr.usr_id = '".$_SESSION["usr_id"]."' AND pos.usr_id = usr.usr_id AND pos.usr_id = usp.usr_id Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Setembro 18, 2011 Porque usr_id nas outras tabelas não é int ? Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Setembro 18, 2011 Porque usr_id nas outras tabelas não é int ? Nem sei '-', mais assim tá certo, é só para colocar o numero do id do user Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Setembro 18, 2011 Não está certo não, se vai guardar número, use campo do tipo numérico. Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Setembro 18, 2011 Não está certo não, se vai guardar número, use campo do tipo numérico. Tudo bem eu altero mais não é esse meu problema... Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Setembro 18, 2011 Tente fazer assim, execute a query manualmente em um gerenciador de banco de dados, e poste o resultado. SELECT * FROM `usr_users` INNER JOIN `stream_friend` ON `usr_users`.`usr_id` = `stream_friend`.`usr_id` INNER JOIN `stream_posts` ON `usr_users`.`usr_id` = `stream_posts`.`friend_id` WHERE `stream_posts`.`usr_id` = .... GROUP BY `usr_users`.`usr_id` Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Setembro 18, 2011 Executei o código no phpMyAdmin com teste do usuário 1... SELECT * FROM `usr_users` INNER JOIN `stream_friend` ON `usr_users`.`usr_id` = `stream_friend`.`usr_id` INNER JOIN `stream_post` ON `usr_users`.`usr_id` = `stream_post`.`friend_id` WHERE `stream_post`.`usr_id` = `1` GROUP BY `usr_users`.`usr_id` Retornou: #1054 - Unknown column '1' in 'where clause' Eu verifiquei as tabelas e todas elas possuem o usuário 1 como teste... Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Setembro 18, 2011 Não se usa apostrofo para passar valores , esse seu '`1`' , tá errado, coloque assim '1' . SELECT * FROM `usr_users` INNER JOIN `stream_friend` ON `usr_users`.`usr_id` = `stream_friend`.`usr_id` INNER JOIN `stream_post` ON `usr_users`.`usr_id` = `stream_post`.`friend_id` WHERE `stream_post`.`usr_id` = 1 GROUP BY `usr_users`.`usr_id` Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Setembro 18, 2011 Ah, é que não sei muita coisa de SQL...nem PHP... Retornou: #1054 - Unknown column 'stream_post.friend_id' in 'on clause' Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Setembro 18, 2011 Aff .. :mellow: SELECT * FROM `usr_users` INNER JOIN `stream_friend` ON `usr_users`.`usr_id` = `stream_friend`.`usr_id` INNER JOIN `stream_posts` ON `stream_friend`.`friend_id` = `stream_posts`.`usr_id` WHERE `stream_posts` = 1 GROUP BY `usr_users`.`usr_id` Acho melhor te encaminhar pro fórum de MySQL. Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Setembro 18, 2011 Hum.... Tem certeza que não consegue fazer ? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Setembro 18, 2011 Vendo assim por cima, não, teria que ver a estrutura da tabela, etc .. tem que fazer testes cara, não sou ninja não. ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Setembro 18, 2011 Tabela usr_users Tabela stream_friend Tabela stream_post Compartilhar este post Link para o post Compartilhar em outros sites