Ir para conteúdo

POWERED BY:

Arquivado

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

gremio10

Listar cada compra de um usuario

Recommended Posts

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

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

@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

×

Informação importante

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