none
Duvida Select RRS feed

  • Pergunta

  •  

    Gente...estou com uma dúvida em relação a esta query....

     

    SELECT P.ID AS ID_PESSOA_FISICA, P.NOME AS NOME_PESSOA_FISICA, RH.ID AS ID_RECURSOS_HUMANOS
    FROM PESSOA_FISICA P
    INNER JOIN RECURSOS_HUMANOS RH ON P.ID = RH.ID

     

    ela me retorna todas pessoas que existem em ambas tabelas com o ID igual....assim tenho certeza que se trata da mesma pessoa....porém, qual o sentido do * abaixo na consulta?

     

    P.ID* = RH.ID

     

    Alguém saberia me dizer o que ele faz?? a função??

     

    Grato,

    terça-feira, 26 de agosto de 2008 16:56

Respostas

  • Boa Tarde,

     

    Nesse caso, o *= é sinônimo de LEFT OUTER JOIN. Isso significa que todas as pessoas serão retornadas quer tenham registros na tabela de RH ou não. Os que não tiverem registros na tabela de RH terão as colunas da tabela de RH com um valor NULL. Você pode reescrever esse comando da seguinte forma

     

    Code Snippet
    SELECT P.ID AS ID_PESSOA_FISICA, P.NOME AS NOME_PESSOA_FISICA, RH.ID AS ID_RECURSOS_HUMANOS
    FROM PESSOA_FISICA P
    LEFT OUTER JOIN RECURSOS_HUMANOS RH ON P.ID = RH.ID

     

     

    A sintaxe *= é legada e não deve ser utilizada. Eu recomendo não trabalhar com ele e partir para operadores JOIN (INNER, LEFT, RIGHT)

     

    [ ]s,

     

    Gustavo

    terça-feira, 26 de agosto de 2008 17:13

Todas as Respostas

  • Boa Tarde,

     

    Nesse caso, o *= é sinônimo de LEFT OUTER JOIN. Isso significa que todas as pessoas serão retornadas quer tenham registros na tabela de RH ou não. Os que não tiverem registros na tabela de RH terão as colunas da tabela de RH com um valor NULL. Você pode reescrever esse comando da seguinte forma

     

    Code Snippet
    SELECT P.ID AS ID_PESSOA_FISICA, P.NOME AS NOME_PESSOA_FISICA, RH.ID AS ID_RECURSOS_HUMANOS
    FROM PESSOA_FISICA P
    LEFT OUTER JOIN RECURSOS_HUMANOS RH ON P.ID = RH.ID

     

     

    A sintaxe *= é legada e não deve ser utilizada. Eu recomendo não trabalhar com ele e partir para operadores JOIN (INNER, LEFT, RIGHT)

     

    [ ]s,

     

    Gustavo

    terça-feira, 26 de agosto de 2008 17:13
  • Vlw Gustavo...

    Agora entendi este tipo de utilização!!!

    terça-feira, 26 de agosto de 2008 17:39