gremio10 14 Denunciar post Postado Abril 25, 2011 Fala galera, seguinte, tenho 3 tabelas relacionadas entre si, e queria fazer com que eu conseguisse buscar todas as compras feitas por todos os usuarios cadastrados... tabela produtos id produto preco 1 mesa 1000 2 cadeira 500 tabela usuario id nome sexo 1 Felipe M 2 Eduardo M tabela compra id produto_id usuario_id 1 1 1 2 2 1 3 1 2 então, eu consegui fazer com que ele liste os usuarios, meu SQL: SELECT usuario.* FROM compra INNER JOIN usario ON (usario.id = compra.usuario_id) GROUP BY usuario.id ORDER BY compra.id e listar as compras SELECT * FROM produtos INNER JOIN compra ON (compra.produtos_id = produtos.id) INNER JOIN usuario ON (usario.id = compra.usuario_id) só que o problema é que se eu tiver dois usuarios, como o exemplo acima, ele lista tanto num, quanto no outro todas os produtos.... Alguém saberia como resolver isso ? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Wess 1 Denunciar post Postado Abril 26, 2011 gremio10, o q você quer é qtas compras cada usuário fez ou seja um contador das compras, por usuário? Se sua resposta for sim o SQL abaixo deve resolver: SELECT COUNT(C.usuario_id) AS Qtde, C.usuario_id FROM compra AS C INNER JOIN usuario AS U ON (C.usuario_id = U.id) GROUP BY C.usuario_id Agora se você quiser o total em R$ de compra por usuário seria mais ou menos isso: SELECT C.usuario_id, P.produto, SUM(P.preco) AS Total FROM compra AS C INNER JOIN usuario AS U ON (C.usuario_id = U.id) INNER JOIN produtos AS P ON (C.produto_id = P.id) GROUP BY C.usuario_id ORDER BY Total DESC Espero que isso lhe ajude. Qualquer coisa é só postar. Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Abril 26, 2011 @Wess, obrigado pela ajuda, o que eu queria seria pegar o nome da compra, o valor e outras informações... Compartilhar este post Link para o post Compartilhar em outros sites
Wess 1 Denunciar post Postado Abril 26, 2011 @Wess, obrigado pela ajuda, o que eu queria seria pegar o nome da compra, o valor e outras informações... gremio10, o que você quer é pegar o nome do Produto da compra o valor desta compra e qual seria as outras informações. Poderia ser tipo isso: SELECT C.id, P.produto, P.preco, U.nome FROM compra AS C INNER JOIN usuario AS U ON (C.usuario_id = U.id) INNER JOIN produtos AS P ON (C.produto_id = P.id) ORDER BY U.nome ASC Neste ele irá pegar as compras e informar o ID da compra, Nome do Produto, seu Preço e o Usuário que fez a compra. Seria isso? Compartilhar este post Link para o post Compartilhar em outros sites