Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta SQL


joomlur

Pergunta

Pessoal,

Eu trabalho com Joomla CMS, e estou precisando extrair um relatórios de acesso dos usuário.

A ferramenta não possuí um recurso que me forneça isso.

Então quero fazer uma consulta sql que me retorne, o nome do usuário, Login, grupo ao qual pertence, data do acesso e se possível, quantas vezes acessou.

Estou fazendo a seguinte consulta

SELECT name, username, title, lastvisitDate

FROM joomla_users

INNER JOIN joomla_usergroups

ON lastvisitDate = lastvisitDate

Estaria correta?

Está me retornando de uma forma esquisita.

Tenho uns 20 grupos de usuários, tipo, administração, financeiro..etc

Quanto ele me retorna a consulta, cada usuário, aparece diversas vezes, em todos os grupos, mas não está correto, cada usuário tem que aparecer relacionado no grupo ao qual ele foi adicionado.

Por exemplo:

Usuário, Login, Grupo, último acesso

Carlos, c2125, financeiro, 05/05/2012

Está aparecendo assim:

Carlos, c2125, financeiro, 05/05/2012

Carlos, c2125, adm, 05/05/2012

Carlos, c2125, logistica, 05/05/2012

Carlos, c2125, marketing, 05/05/2012

Eu não cadastrei esse usuário nesses grupos.

O que devo fazer para me retornar corretamente os acessos?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

O correto qui é atribuit o nome da tabel ou um apelido antes da comparação realizada pela cláusula ON do INNER JOIN.

Assim sendo, teste isto:

SELECT name, username, title, lastvisitDate
FROM joomla_users u
INNER JOIN joomla_usergroups g
ON g.lastvisitDate = u.lastvisitDate

Quando usamos INNER JOIN ou LEFT JOIN ou RIGHT JOIN devemos colocar a comparação, com os atributos que realizam a junção das tabelas, na clausula ON e não na cláusula WHERE.

Deixe a cláusula WHERE somente para os outros filtros que você desejar.

Não é errado a forma como foi colocado pelo Jhonas no post anterior. O código fica mais limpo e funcional fazendo da forma como relato acima.

Link para o comentário
Compartilhar em outros sites

  • 0

.

Pelo que me parece, o relacionamento entre as duas tabelas na cláusula ON está incorreto.

Por isso ele traria os registros bagunçados desta forma.

Primeiro: Você deve colocar o nome da tabela na frente do nome do campo

Ex:

SELECT name, username, title, lastvisitDate

FROM joomla_users

INNER JOIN joomla_usergroups

ON joomla_usergroups.lastvisitDate = joomla_users.lastvisitDate <<--

E segundo, quais os campos que as duas tabelas tem em comum uma com a outra???

Apenas o "lastvisitDate" ou tem mais??

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...