1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[RESOLVIDO] Sql join

Discussão em 'Web Development' iniciada por ThinkBrunus, 29 de Maio de 2009. (Respostas: 2; Visualizações: 594)

  1. ThinkBrunus

    ThinkBrunus Power Member

    Viva!
    Estou a tentar colocar um join numa querie que pretendo que retorne os dados de determinado utilizador e respectivas permissões de acesso, sabendo que cada utilizador poderá ter um ou mais tipos de permissões. Estou a tentar o seguinte código:

    Código:
    SELECT posto.sigla AS posto,classe.sigla AS classe,apelido,divisao.sigla AS divisao,detalhe.nome AS detalhe,nivelacesso_detalhe.id_nivelacesso
    FROM utilizador,posto,classe,detalhe,divisao
    WHERE posto.id_posto=utilizador.id_posto
    AND classe.id_classe=utilizador.id_classe AND utilizador.id_detalhe=detalhe.id_detalhe
    AND detalhe.id_divisao=divisao.id_divisao
    JOIN nivelacesso_detalhe ON detalhe.id_detalhe=nivelacesso_detalhe.id_detalhe
    Mas não estou a conseguir que funcione e retorne os valores desejados...não tou a perceber o que está a falhar, venho pedir uma ajudinha!
     
    Última edição: 8 de Junho de 2009
  2. Bl4ckNo0bik

    Bl4ckNo0bik What is folding?

    Boas caro amigo,

    bem essa query esta mal formada. deveria estar assim:

    SELECT posto.sigla AS posto,classe.sigla AS classe,apelido,divisao.sigla AS divisao,detalhe.nome AS detalhe,nivelacesso_detalhe.id_nivelacesso
    FROM utilizador,posto,classe,detalhe,divisao
    JOIN nivelacesso_detalhe ON detalhe.id_detalhe=nivelacesso_detalhe.id_detalhe
    WHERE posto.id_posto=utilizador.id_posto
    AND classe.id_classe=utilizador.id_classe AND utilizador.id_detalhe=detalhe.id_detalhe
    AND detalhe.id_divisao=divisao.id_divisao

    o JOIN tem de se encontrar entre o FROM e o WHERE.... agora nao sei e se essa query ira funcionar so assim... talvez precises de fazer LEFT JOIN ou RIGHT JOIN em vez de so JOIN.

    Cumps
     
  3. ThinkBrunus

    ThinkBrunus Power Member

    Viva!
    Pois o problema parte dai...de qualquer forma obtei pelo seguinte:

    Código:
    SELECT posto.sigla AS posto,classe.sigla AS classe,apelido,divisao.sigla AS divisao,detalhe.nome AS detalhe,nivelacesso_detalhe.id_nivelacesso
    FROM utilizador,
    INNER JOIN posto posto.id_posto=utilizador.id_posto
    INNER JOIN classe ON classe.id_classe = utilizador.id_classe
    INNER JOIN detalhe ON detalhe.id_detalhe = utilizador.id_detalhe
    INNER JOIN divisao ON detalhe.id_divisao = divisao.id_divisao
    INNER JOIN nivelacesso_detalhe ON detalhe.id_detalhe = nivelacesso_detalhe.id_detalhe
    De qualquer forma obrigado pela dica!
     

Partilhar esta Página