# RIGHT OUTER JOIN

RIGHT OUTER JOIN é uma Operação JOIN que permite especificar a cláusula de junção. Preserva as linhas sem correspondência da segunda tabela (direita), juntando-as com uma linha nula na forma da primeira tabela (esquerda). (A LEFT OUTER JOIN B) é equivalente a (B RIGHT OUTER JOIN A), com as colunas em uma ordem diferente.

#### Sintaxe

    ExpressãoTabela RIGHT [ OUTER ] JOIN ExpressãoTabela
    {
        ON ExpressãoBooleana
        }

O escopo das expressões na cláusula ON inclui as tabelas correntes, e as tabelas nos blocos de consulta externos ao SELECT corrente. A cláusula ON pode fazer referência a tabelas que não estão sendo juntadas, e não é obrigada a fazer referência a nenhuma das tabelas sendo juntadas (embora tipicamente o faça).

    -- obter todos os países e cidades correspondentes,
    -- incluindo os países sem nenhuma cidade
    SELECT NOME_CIDADE, CIDADES.PAÍS
    FROM CIDADES RIGHT OUTER JOIN PAÍSES
         ON CIDADES.COD_ISO_PAÍS = PAÍSES.COD_ISO_PAÍS;

    -- obter todos países da África e as cidades correspondentes,
    -- incluindo os países sem cidades
    SELECT NOME_CIDADE, CIDADES.PAÍS
    FROM CIDADES RIGHT OUTER JOIN PAÍSES
         ON CIDADES.COD_ISO_PAÍS = PAÍSES.COD_ISO_PAÍS;
    WHERE PAÍSES.REGIÃO = 'África';

    -- uso da sintaxe sinônimo, RIGHT JOIN, para obter exatamente
    -- os mesmos resultados do exemplo acima
    SELECT NOME_CIDADE, CIDADES.PAÍS
    FROM CIDADES RIGHT JOIN PAÍSES
         ON CIDADES.COD_ISO_PAÍS = PAÍSES.COD_ISO_PAÍS
    WHERE PAÍSES.REGIÃO = 'África';

    -- a ExpressãoTabela pode ser uma OperaçãoJunção. Portanto,
    -- podem haver várias operações de junção na cláusula FROM
    -- Listar todos os números e último nome dos empregados,
    -- juntamente com os números e último nome de seus gerentes
    SELECT E.NUM_EMP, E.ÚLTIMO_NOME, M.NUM_EMP, M.ÚLTIMO_NOME
    FROM EMPREGADOS E RIGHT OUTER JOIN
         DEPARTAMENTOS RIGHT OUTER JOIN EMPREGADOS M
         ON NUM_GER = M.NUM_EMP
         ON E.DEP_TRAB = NUM_DEP;

Tópico pai: Instruções
Conceitos relacionados
Interação com o sistema de dependências
Instruções CREATE
Instruções DROP
Instruções RENAME
Instruções SET
Referências relacionadas
Instrução ALTER TABLE
CALL (PROCEDIMENTO)
Cláusula CONSTRAINT
Instrução DECLARE GLOBAL TEMPORARY TABLE
Instrução DELETE
Cláusula FOR UPDATE
Cláusula FROM
Cláusula GROUP BY
Cláusula HAVING
INNER JOIN
Instrução INSERT
Operação JOIN
LEFT OUTER JOIN
Instrução LOCK TABLE
Cláusula ORDER BY
Consulta
SubconsultaEscalar
ExpressãoSeleção
Instrução SELECT
ExpressãoTabela
SubconsultaTabela
Instrução UPDATE
VALUES Expressão
Cláusula WHERE
Cláusula WHERE CURRENT OF