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;