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.
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;