Ir para conteúdo

POWERED BY:

Arquivado

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

Paula Torris

[Resolvido] lógica em uma consulta sql

Recommended Posts

Olá pessoal,

 

Estou apanhando para fazer duas consultas simples no meu banco.

 

1º Dúvida é o seguinte,

 

Tenho a seguinte tabela:

 

----------------

TABELA USUARIO:

 

ID_USUARIO - USUARIO

 

1 - joão

2 - maria

3 - karina

----------------

TABELA CPF

 

ID_CPF - ID_USUARIO - CPF

 

1 - 1 - 345.345.345.34

2 - 3 - 324.253.456.43

----------------

 

A dúvida aqui é como fazer uma consulta sql onde me retorne da tabela USUARIOS apenas usuarios que NÃO tem CPF cadastrado? No exemplo das tabelas, a consulta iria me retornar o nome da MARIA pois ela não tem CPF cadastrado.

 

Eu tentei algo asssim mas não deu :(

 

SELECT usuario FROM usuario,cpf WHERE usuario.id_usuario != cpf.id_usuario

 

Mas não funciona, alguém sabe como fazer?

 

 

 

2º Dúvida é a seguinte,

 

Eu tenho uma tabela assim:

 

TABELA JOGADORES

ID_JOGADOR - JOGOS - DATA

 

1 - 567 - 2010/06/10

1 - 796 - 2010/07/23

1 - 890 - 2010/08/25

6 - 300 - 2010/07/20

6 - 300 - 2010/08/30

6 - 300 - 2010/09/10

 

Repare que na tabela, temos dois jogadores, o jogador com ID 1, e o jogador com ID 6, e nesta tabela é feito o registro do numero de jogos que cada jogador faz em determinada data.

 

O jogador com ID 6, repare que ele não vem jogando com o passar do tempo, passaram-se 3 datas que foram registradas e ele manteve os mesmos 300 jogos.

 

A duvida da consulta é a seguinte,

 

Como fazer uma consulta para identificar quais jogadores não vem jogando? No caso do exemplo, eu precisaria de uma consulta que retornasse o jogador com ID 6, pois ele nao vem jogando durante as 3 datas que fizemos registro dos jogos dele.

 

Não tenho base por onde comecar :( , alguém tem alguma luz?

 

Desde já

Mto Grata,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paula Torris bom dia,

 

Na sua primeira dúvida, porque voce criou uma nova tabela pra CPF? CPF é único (por pessoa), pode ser implementado na tabela usuário como um CAMPO normal. Fica mais prático trabalhar assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paula Torris bom dia,

 

Na sua primeira dúvida, porque voce criou uma nova tabela pra CPF? CPF é único (por pessoa), pode ser implementado na tabela usuário como um CAMPO normal. Fica mais prático trabalhar assim.

 

Olá, realmente, não ha necessidade da tabela CPF, uma vez que é um campo unico pra cada usuario.

 

Porém, este foi apenas um exemplo que veio na minha cabeca pra tentar demonstrar o problema que eu venho enfrentando com esta busca, a tabela CPF poderia ser qualquer outra que relaciona com a USUARIO.

 

Mesmo assim, agradeço a ajuda,

 

Grata

Paula

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. pensei em subquery...

 

seria mais ou menos assim:

SELECT usuario FROM usuario WHERE usuario.id NOT IN( SELECT id_usuario FROM cpf )

a segunda dúvida é ainda mais estranha... se na primeira você deveria usar a mesma tabela, na segunda, você nem deveria ter registro 'repetido', que não traga informações úteis.

 

exporte as tabelas e poste aqui... no segundo caso, só consigo pensar em algumas funções de grupo combinadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. pensei em subquery...

 

seria mais ou menos assim:

SELECT usuario FROM usuario WHERE usuario.id NOT IN( SELECT id_usuario FROM cpf )

a segunda dúvida é ainda mais estranha... se na primeira você deveria usar a mesma tabela, na segunda, você nem deveria ter registro 'repetido', que não traga informações úteis.

 

exporte as tabelas e poste aqui... no segundo caso, só consigo pensar em algumas funções de grupo combinadas.

 

Olá,

 

Mto obrigada pela ajuda com o NOT IN() e a subquery, funcionou certinho :)

 

Em relação ao segundo problema, vou tentar repensar uma forma de pegar estes jogadores que não jogam.

 

Mto obrigada,

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.