none
Query RRS feed

  • Pergunta

  • Boa tarde.

     

    Faz algum tempo que eu conheço o SQL, mas nunca me preocupei sobre um assunto e hoje fiquei com dúvida.

     

    Qual a diferença ao usar LEFT JOIN ou LEFT OUTER JOIN??

     

    Obrigado,

     

    Alex

    quarta-feira, 19 de dezembro de 2007 14:36

Todas as Respostas

  • Boa Tarde,

     

    Não existe diferença entre esses operadores. Os dois fazem exatamente a mesma coisa. O correto segundo o ANSI é LEFT OUTER JOIN. O TSQL aceita a abreviação LEFT JOIN.

     

    O operador LEFT OUTER JOIN irá trazer todos os registros na tabela à esquerda independente dos correspondentes na tabela à direita. Se houver correspondentes na tabela à direita, os dados são retornados. Se não houver, um nulo é preenchido.

     

    Ex:

     

    SELECT

    ContactName, OrderID

    FROM

    Customers

    LEFT OUTER JOIN Orders

    ON Customers.CustomerID = Orders.CustomerID

     

    Nesse caso, todos os clientes são retornados independente de terem pedidos ou não. Se houver clientes com pedido, a coluna OrderID é preenchida. Se não houver um NULO será retornado para essa coluna.

     

    As implementações LEFT OUTER JOIN e RIGHT OUTER JOIN estão disponíveis no padrão ANSI desde a revisão de 92 (ANSI92, SQL92 ou SQL2).

     

    [ ]s,

     

    Gustavo

    quarta-feira, 19 de dezembro de 2007 15:12
  • Alex,

     

    Não existe diferença entre eles, na verdade os dois tem a mesma funcionalidade e trabalham da mesma forma.

     

    Estas são as duas formas diferentes de declarar este tipo de Join, seguindo os padrões ANSI92 e SQL92, agora no novo SQL Server 2008, serão adotados novos padrões para definição e sintáxe de comandos, neste caso, é o padrão SQL2005.

    quarta-feira, 19 de dezembro de 2007 15:41