Bergs 53 Denunciar post Postado Março 12, 2012 Segue o exemplo da situação: - listar posts (por categoria) - dentro destes posts (na listagem) informar número de comentários por post. Já consegui listar os posts, a variável $id seta a categoria via $_GET: $sql = "SELECT * FROM posts WHERE id_cat = $id AND status = 1 ORDER BY id DESC"; A tabela coments tem uma linha de referência ao post. Consigo informar o número de comentários apenas na página individual do post, não estou conseguindo informar o número de comentários na listagem dos posts. Como relacionar as tabelas coments e posts?, tentei usar o INNER JOIN só que não funcionou, está duplicando os posts e perco a referência da variável $id (índice das categorias). $sql = "SELECT posts.*, coments.* FROM posts INNER JOIN coments ON posts.id_cat = coments.id_post ORDER BY posts.id DESC"; E onde aplicar o count dos comentários? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Março 12, 2012 $sql = "SELECT p.*, (SELECT COUNT(c.id) as total coments WHERE c.id_post = p.id GROUP BY c.id_post) as total_posts FROM posts p WHERE p.id_cat = $id AND p.status = 1 ORDER BY p.id DESC"; Compartilhar este post Link para o post Compartilhar em outros sites
Bergs 53 Denunciar post Postado Março 12, 2012 $sql = "SELECT p.*, (SELECT COUNT(c.id) as total coments WHERE c.id_post = p.id GROUP BY c.id_post) as total_posts FROM posts p WHERE p.id_cat = $id AND p.status = 1 ORDER BY p.id DESC"; @ESerra, não funcionou. fiquei voando nessa parte: (SELECT COUNT(c.id) as total coments WHERE c.id_post = p.id GROUP BY c.id_post) as total_posts FROM posts p Você pode explicar seu código? Grato pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Março 12, 2012 É apenas uma subquery com o count do ID da tabela dos comentários, não funcionou? Retornou algum erro? Não retornou nada... Compartilhar este post Link para o post Compartilhar em outros sites
Bergs 53 Denunciar post Postado Março 12, 2012 RESOLVIDO, o que estava dando errado foi o primeiro (as total) alterei para FROM e funcionou. $sql = "SELECT p.*, (SELECT COUNT(c.id) FROM coments c WHERE c.id_post = p.id GROUP BY c.id_post) as total_posts FROM posts p WHERE p.id_cat = $id AND p.status = 1 ORDER BY p.id DESC"; Obrigado pela força! Compartilhar este post Link para o post Compartilhar em outros sites