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

(Resolvido) Como usar mais de dois INNER JOINS


Gilson Filho

Pergunta

Ola pessoal,

Eu estou querendo consultar tres tabelas. A regra seria essa:

Consultar os USUARIOS cadastrados no sistema que estejam vinculados a um GRUPO cadastrado, e este estar

vinculado a um DEPARTAMENTO cadastrado no sistema.

O que eu consegui ate agora so consultar USUARIOS vinculados ao GRUPO:

SELECT
usuarios.nome_usuario,usuarios.qtd_paginas,usuarios.cota_adicional,grupo.nome
FROM pol_usu_grp
INNER JOIN politica_usuarios usuarios ON usuarios.id_pol_us = pol_usu_grp.id_pol_us
INNER JOIN grupo ON grupo.id_grupo = pol_usu_grp.id_grupo;

Como posso fazer mais de dois INNER JOINS, alguém já conseguiu?

VLW!!!!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Oi,

Como posso fazer mais de dois INNER JOINS, alguém já conseguiu?

É só acrescentar mais linhas contendo os JOINS.

Mostre as estruturaas das tabelas. Não precisa ser tudo. somente os campos onde elas se ligam.

Link para o comentário
Compartilhar em outros sites

  • 0

A estrutura e assim:

USUARIOS

id_pol_us (PK)

nome_usuario

qtd_paginas

(...)

cota_adicional

Tabela que liga USUARIOS e GRUPOS:

POL_USU_GRP

id_grupo (FK)

id_pol_us (FK)

GRUPO

id_grupo (PK)

nome

descri

(...)

cota_adicional

Tabela que liga GRUPOS e DEPARTAMENTOS:

POL_GRP_DEP

id_departamento (FK)

id_grupo (FK)

DEPARTAMENTO

id_departamento (PK)

nome

descri

(...)

cota_adicional

Link para o comentário
Compartilhar em outros sites

  • 0

'Gilson Filho',

Consultar os USUARIOS cadastrados no sistema que estejam vinculados a um GRUPO cadastrado, e este estar

vinculado a um DEPARTAMENTO cadastrado no sistema.

SELECT * 
FROM USUARIOS U
INNER JOIN POL_USU_GRP PUG ON PUG.id_pol_us =  U.id_pol_us 
INNER JOIN GRUPO G ON G.id_grupo = PUG.id_grupo
INNER JOIN POL_GRP_DEP PGD ON PGD.PUG.id_grupo = PUG.id_grupo
INNER JOIN DEPARTAMENTO D ON D.id_departamento = PGD.id_departamento

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui sim, obrigado!

SELECT usuario.nome_usuario,usuario.qtd_paginas,usuario.cota_adicional,grupo.nome,dep.nome 
FROM politica_usuarios usuario 
INNER JOIN pol_usu_grp pug ON pug.id_pol_us = usuario.id_pol_us 
INNER JOIN grupo ON grupo.id_grupo = pug.id_grupo 
INNER JOIN pol_grp_dep pgd ON pgd.id_grupo = pug.id_grupo 
INNER JOIN departamento dep ON dep.id_departamento = pgd.id_departamento;

Mas só por curiosidade. Por que do jeito que estava fazendo não estava conseguindo?

Obrigado!!

Link para o comentário
Compartilhar em outros sites

  • 0
Mas só por curiosidade. Por que do jeito que estava fazendo não estava conseguindo?

Porque a primeira tabela que você estava usando era uma tabela de relacionamento e não uma tabela de cadastro. Com isto você estava se perdendo na lógica.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...