RIGHT OUTER JOIN演算は、JOIN節に置くことのできるJOIN演算の一種です。
この式では、一つ目(左)の表に合う行がない二つ目(右)の表にある行も結果に残ります。そのとき一つ目の表からの情報はNULLと扱われます。A LEFT OUTER JOIN B は B RIGHT OUTER JOIN Aと、列の順が違う事を除けば同じです。
例1-- 都市のない国を含めた、
-- 全ての国と都市の一覧を得ます。
SELECT COUNTRIES.COUNTRY, CITIES.CITY_NAME
FROM CITIES
RIGHT OUTER JOIN COUNTRIES
ON CITIES.COUNTRY_ISO_CODE = COUNTRIES.COUNTRY_ISO_CODE
-- 都市のない国を含めた、
-- アフリカの全ての国と都市の一覧を得ます。
SELECT COUNTRIES.COUNTRY, CITIES.CITY_NAME
FROM CITIES
RIGHT OUTER JOIN COUNTRIES
ON CITIES.COUNTRY_ISO_CODE = COUNTRIES.COUNTRY_ISO_CODE
WHERE Countries.region = 'Africa'
-- RIGHT JOINという同じ内容の記述により、
-- 前の例と同じ結果を得ます。
SELECT COUNTRIES.COUNTRY, CITIES.CITY_NAME
FROM CITIES
RIGHT JOIN COUNTRIES
ON CITIES.COUNTRY_ISO_CODE = COUNTRIES.COUNTRY_ISO_CODE
WHERE Countries.region = 'Africa'
例2-- 演算は表式の一つです。
-- なのでFRON句には複数の演算を置くことができます。
-- 以下の例では全社員の社員番号と苗字を、
-- その社員の管理者の社員番号と苗字と共に一覧します。
SELECT E.EMPNO, E.LASTNAME, M.EMPNO, M.LASTNAME
FROM EMPLOYEE E RIGHT OUTER JOIN
DEPARTMENT RIGHT OUTER JOIN EMPLOYEE M
ON MGRNO = M.EMPNO
ON E.WORKDEPT = DEPTNO