2021年 秋期 データベーススペシャリスト 午前 問8

“社員取得資格”表に対して、SQL文を実行して結果を得た。 SQL文のaに入る字句はどれか。

社員取得資格
社員コード 資格
S001 FE
S001 AP
S001 DB
S002 FE
S002 SM
S003 FE
S004 AP
S005 NULL

[SQL文]
SELECT C1.社員コード, C1.資格 AS 資格1, C2.資格 AS 資格2
   FROM 社員取得資格 C1 LEFT OUTER JOIN 社員取得資格 C2
       a  

 ア  ON C1.社員コード = C2.社員コード
     AND C1.資格 = ‘FE’ AND C2.資格 = ‘AP’
 WHERE C1.資格 = ‘FE’
 イ  ON C1.社員コード = C2.社員コード
     AND C1.資格 = ‘FE’ AND C2.資格 = ‘AP’
 WHERE C1.資格 IS NOT NULL
 ウ  ON C1.社員コード = C2.社員コード
     AND C1.資格 = ‘FE’ AND C2.資格 = ‘AP’
 WHERE C1.資格 = ‘AP’
 エ  ON C1.社員コード = C2.社員コード
 WHERE AND C1.資格 = ‘FE’ AND C2.資格 = ‘AP’


答え ア


解説
結果から資格1はFE、資格2はAPを出力していて、FEを取得していない社員は出力していないので、“社員取得資格”をC1とC2として外部結合させて、SQL文は、
 ON C1.社員コード = C2.社員コード
     AND C1.資格 = ‘FE’ AND C2.資格 = ‘AP’
 WHERE C1.資格 = ‘FE’

(ア)になります。


キーワード
・外部結合

キーワードの解説
  • 外部結合
    2つのテーブルを結合してデータを取得する方法の中で、指定したそれぞれのテーブルの値が一致するデータだけではなくどちらかのテーブルにだけデータがある場合も合わせて取得する方法で、OUTER JOIN句を使用します。

もっと、「外部結合」について調べてみよう。

戻る 一覧へ 次へ