sqlite, select distinct em apenas uma coluna

1. sqlite, select distinct em apenas uma coluna

shoujo
shoujo

(usa Slackware)

Enviado em 01/02/2018 - 10:17h

Olá, tenho 2 tabelas:
login: id, usuario, senha, email
logando: id, idIdentificador, cookie, ativo

E faço o seguinte:
SELECT login.email, login.id, login.senha, login.usuario, logando.cookie FROM login INNER JOIN logando on login.id=logando.idIdentificador and logando.ativo=1

Eu preciso pegar o email e nome do usuario que seria login.email e login.usuario..
O problema é que com essa consulta ele repete o mesmo usuario varias vezes, pois tem varios logins desse mesmo usuario com esse cookie, e mesmo colocando logando.ativo=1

Tentei fazer:
SELECT DISTINCT login.email, login.id, login.senha, login.usuario, logando.cookie FROM login INNER JOIN logando on login.id=logando.idIdentificador and logando.ativo=1

Mas não resolveu, pois o logando.cookie é sempre diferente, ai o DISTINCT não considera como repetição...

Alguma idéia de como faço pra não repetir os email da coluna email na busca?


  


2. Re: sqlite, select distinct em apenas uma coluna

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/02/2018 - 10:24h

Apenas especifique as colunas que você precisa:

SELECT DISTINCT login.email, login.usuario FROM ...

Se precisar da informação além do e-mail e usuário, tenta com a cláusula WHERE:

SELECT login.email, login.id, login.senha, login.usuario, logando.cookie
FROM login INNER JOIN logando on login.id=logando.idIdentificador
WHERE logando.ativo=1


3. Re: sqlite, select distinct em apenas uma coluna

shoujo
shoujo

(usa Slackware)

Enviado em 01/02/2018 - 10:53h

hcabzlus, não deu certo não, continua a repetir os registros

Acho que vou fazer diferente, vou colocar o where pro cookie.


4. Re: sqlite, select distinct em apenas uma coluna

shoujo
shoujo

(usa Slackware)

Enviado em 01/02/2018 - 10:56h

SELECT login.email, login.id, login.senha, login.usuario, logando.cookie
FROM login INNER JOIN logando on login.id=logando.idIdentificador and logando.cookie="Cic1KoZ16XnZfNtCBwqnVR79abaXd6vj"
WHERE logando.ativo=0

Assim funcionou aparentemente, vou fazer mais testes


5. Re: sqlite, select distinct em apenas uma coluna

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/02/2018 - 15:57h

Seu problema está na lógica de inserção dos valores na tabela LOGANDO. Se o cookie está se repetindo com uma mesma flag de ativo, essa tabela vai ter um bocado de tupla repetida, o que não faz qualquer sentido, ainda mais que não há uma identificação de data por exemplo. Antes de inserir você deve verificar se já existe um cookie de mesmo valor para um mesmo usuário. Se existir, apenas modifique a flag ATIVO. Se você não corrigir isso agora, vai precisar ficar inventando coisa no código pra fazer funcionar uma coisa simples.


6. Re: sqlite, select distinct em apenas uma coluna

shoujo
shoujo

(usa Slackware)

Enviado em 06/02/2018 - 14:16h

descobri uma coisa, eu nao preciso de colocar o nome da tabela, nas colunas que vao aparecer, posso chamar direto as colunas






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts