Ir para conteúdo

POWERED BY:

Arquivado

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

Paula Torris

sobre como fazer uma consulta [nível mediano]

Recommended Posts

Olá gente, tenho uma dúvida de como fazer uma consulta de nivel mediano ( pelo menos para mim :D ) no meu BD.

 

A estrutura do BD é extremamente simples:

 

> DICA

- ID_DICA

- ID_AUTOR

- ID_CATEGORIA

- DICA

 

 

> AUTOR

- ID_AUTOR

- AUTOR

 

 

> CATEGORIA

- ID_CATEGORIA

- CATEGORIA

 

 

> USUARIO

- ID_USUARIO

- USUARIO

 

 

> USUARIO_DICAS

- ID_USUARIO_DICAS

- ID_USUARIO

- ID_DICA

 

 

 

Como podem ver, o banco é bem simples, isso acima nada mais é que um cadastro de dicas, onde cada dica tem um autor e uma categoria, um usuario pode adicionar varias dicas cadastradas para si.

 

A dúvida que eu tenho é a seguinte:

 

Gostaria de fazer uma consulta no esquema acima que:

 

Liste todas as dicas e qual o numero de usuarios cada dica listada tem.

 

Alguem poderia me ajudar?

 

desde já, muito obrigada,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez este artigo lhe seja útil:

http://forum.imasters.com.br/index.php?showtopic=140816

 

Só não entendi esta parte:

Liste todas as dicas e qual o numero de usuarios cada dica listada tem.

Você quis dizer "qunatos usuários leram a dica"?

 

Abraços,

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez este artigo lhe seja útil:

http://forum.imasters.com.br/index.php?showtopic=140816

 

Só não entendi esta parte:

Liste todas as dicas e qual o numero de usuarios cada dica listada tem.

Você quis dizer "qunatos usuários leram a dica"?

 

Abraços,

Beraldo

 

Olá Beraldo, obrigada por responder,

 

A tabela USUARIO guarda os dados dos usuarios cadastrados.

 

A tabela USUARIO_DICA guarda as DICAS que o usuarios adicionou para si. Ou seja, neste sistema o usuario pode adicionar as dicas que ele gostou em seu perfil, sendo assim, esta tabela registra o ID_USUARIO e o ID_DICA indicando a DICA que cada usuario escolheu pra si.

 

Sendo assim, a consulta que eu preciso é a seguinte:

 

Preciso que liste todas as dicas do sistema e quantos usuarios tem cada dica.

 

Exemplo

 

DICA -----------------------Quantidade de usuarios

Como usar o excel-------- 8 usuarios adicionaram esta dica (esta quantidade de usuarios da pra saber pela tabela USUARIO_DICA)

Como usar o word-------- 9 usuarios adicionaram esta dica (esta quantidade de usuarios da pra saber pela tabela USUARIO_DICA)

 

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

Faça um teste com a consulta abaixo:

SELECT A.*,

#Faz a contagem de usuários associados à dica

COUNT(B.ID_USUARIO_DICAS) AS TOTUSUARIO

FROM dica A

INNER JOIN usuario_dicas B ON B.ID_DICA = A.ID_DICA

#Agrupar pelo código da dica p/ efetuar a contagem individual por código

GROUP BY A.ID_DICA

Qualquer dúvida posta ae.

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

Faça um teste com a consulta abaixo:

SELECT A.*,

#Faz a contagem de usuários associados à dica

COUNT(B.ID_USUARIO_DICAS) AS TOTUSUARIO

FROM dica A

INNER JOIN usuario_dicas B ON B.ID_DICA = A.ID_DICA

#Agrupar pelo código da dica p/ efetuar a contagem individual por código

GROUP BY A.ID_DICA

Qualquer dúvida posta ae.

flw

 

Cassitos, muito obrigada, esta sua consulta funcionou direitinho, porém,

 

Ela só lista as DICAS que algum usuario adicionou, ou seja, se ninguém adicionou a dica ela não é listada,

 

Então se a DICA não consta na tabela USUARIO_DICAS ela não é listada,

 

Voce sabe como resolver isso?

 

Testei aqui algumas coisas mas nao consegui resolver, não sou muito familiarizada com INNER JOIN.

 

Desde já, mto grata

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi,Troque INNER JOIN por LEFT JOIN, desta forma mesmo que não tenha registro na tabela usuario_dicas, os registros da tabela Dicas serão exibidos, só que o campo TOTUSUARIO pode retornar NULL caso não tenha usuário.flw

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.