テーブル1(社員テーブル)
社員ID | 社員名
1 | 田中
テーブル2(資格テーブル)
資格ID | 資格名
1 | 普通免許
2 | 医師免許
テーブル3(社員資格紐付けテーブル)
社員ID | 資格ID
1 | 1
出力したい結果(全部の資格に対する、社員「田中」の有無を見たいです)
資格名 | 資格の有無
普通免許 | 有
医師免許 | 無
お言葉に甘えて転記します
SELECT t1.資格名 , (CASE WHEN EXISTS( SELECT FROM 社員資格紐付けテーブル t2 WHERE 社員ID = 1 AND t2.資格ID = t1.資格ID ) THEN '有' ELSE '無' END ) AS 資格の有無 FROM 資格テーブル t1;
コメント(2件)
お使いのRDBMSが不明なので、どうだろう?
SQLite3のような気はするけど、今はちょっと触れる環境にないので・・・
>|sql|
SELECT t1.資格名,
(CASE
WHEN
EXISTS(
SELECT
FROM 社員資格紐付けテーブル t2
WHERE 社員ID = 1
AND t2.資格ID = t1.資格ID
)
THEN '有'
ELSE '無'
END
) AS 資格の有無
FROM 資格テーブル t1;
||<