データベーススペシャリスト令和3年秋期 午前Ⅱ 問8 について

これを実際に動かせるようにSQLを書きました。

https://www.db-siken.com/kakomon/03_aki/am2_8.html

 

 

CREATE TABLE `社員取得資格` (
  `社員コード` varchar(10) DEFAULT NULL,
  `資格` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `社員取得資格` (`社員コード`, `資格`)
VALUES
    ('S001','FE'),
    ('S001','AP'),
    ('S001','DB'),
    ('S002','SM'),
    ('S002','FE'),
    ('S003','FE'),
    ('S004','AP'),
    ('S005',NULL);

 

SELECT C1.社員コード, C1.資格 AS 資格1, C2.資格 AS 資格2
  FROM 社員取得資格 C1 LEFT OUTER JOIN 社員取得資格 C2
ON C1.社員コード = C2.社員コード
  AND C1.資格 = 'FE' AND C2.資格 = 'AP'
WHERE C1.資格 = 'FE';

 

SELECT C1.社員コード, C1.資格 AS 資格1, C2.資格 AS 資格2
  FROM 社員取得資格 C1 LEFT OUTER JOIN 社員取得資格 C2
ON C1.社員コード = C2.社員コード
  AND C1.資格 = 'FE'; AND C2.資格 = 'AP';
WHERE C1.資格 IS NOT NULL;

 

SELECT C1.社員コード, C1.資格 AS 資格1, C2.資格 AS 資格2
  FROM 社員取得資格 C1 LEFT OUTER JOIN 社員取得資格 C2
ON C1.社員コード = C2.社員コード
  AND C1.資格 = 'FE' AND C2.資格 = 'AP'
WHERE C2.資格 = 'AP';

 

SELECT C1.社員コード, C1.資格 AS 資格1, C2.資格 AS 資格2
  FROM 社員取得資格 C1 LEFT OUTER JOIN 社員取得資格 C2
ON C1.社員コード = C2.社員コード
WHERE C1.資格 = 'FE' AND C2.資格 = 'AP';