7.12.5 FULL OUTER JOINを指定した外結合
FULL OUTER JOINを指定した外結合の例を次に示します。
-
検索対象表
-
実行するSELECT文
SELECT * FROM "SALESLIST" FULL OUTER JOIN "USERSLIST" ON "USERSLIST"."USERID"="SALESLIST"."USERID"
次の行の和集合が結合表の結果になります。
-
両側に指定した表参照の直積(SALESLISTとUSERSLISTの直積)のうち,結合指定に指定した探索条件(上記の下線部分)が真となる行
-
両側に指定した表参照の直積(SALESLISTとUSERSLISTの直積)のうち,結合指定に指定した探索条件が1つも真とならない左側の表参照の各行に対して,右側の表参照の結果をナル値とした行
-
両側に指定した表参照の直積(SALESLISTとUSERSLISTの直積)のうち,結合指定に指定した探索条件が1つも真とならない右側の表参照の各行に対して,左側の表参照の結果をナル値とした行
-
USERSLISTとSALESLISTの直積(すべての行の組み合わせ)
USERSLISTの各行に対して,SALESLISTのすべての行を組み合わせます。
-
探索条件が真となる行を取得
SALESLISTとUSERSLISTの直積のうち,結合指定に指定した探索条件が真となる行(INNER JOINを指定したときの結果と同じ行)を取得します。
-
探索条件が1つも真とならない左側の表参照の各行に対して,右側の表参照の結果をナル値とした行を取得
SALESLISTとUSERSLISTの直積のうち,結合指定に指定した探索条件が1つも真とならない左側の表参照(SALESLIST)の各行に対して,右側の表参照(USERSLIST)の結果をナル値とした行を取得します。この例の場合,SALESLISTのUSERID列の値がU00026の行が該当します。
-
探索条件が1つも真とならない右側の表参照の各行に対して,左側の表参照の結果をナル値とした行を取得
SALESLISTとUSERSLISTの直積のうち,結合指定に指定した探索条件が1つも真とならない右側の表参照(USERSLIST)の各行に対して,左側の表参照(SALESLIST)の結果をナル値とした行を取得します。この例の場合,USERSLISTのUSERID列の値がU00212の行が該当します。
-
検索結果
この例の場合,次の一覧が取得されます。
1. 商品の購入履歴がある顧客の一覧(INNER JOINと同じ)
2. 顧客リストにない顧客の販売履歴の一覧(顧客IDがU00026の行)
3. 商品の購入履歴がない顧客の一覧(顧客IDがU00212の行)
-