私のmysqlデータベースには、次のテーブルがあります。
FACULTY (fid int, fname varchar(25), deptid int, primary key(fid))
CLASS (name varchar(4),meets_at varchar(9),room varchar(4), fid int,primary key (name), foreign key (fid) references faculty (fid))
すべての部屋に通っている学部名を選びたい。私は次を使用してみました:
SELECT DISTINCT F.FNAME
FROM FACULTY F
WHERE NOT EXISTS (( SELECT *
FROM CLASS C
EXCEPT
(SELECT C1.ROOM
FROM CLASS C1
WHERE C1.FID=F.FID)));
次のエラーが発生しました:
エラー 1064 (42000): SQL 構文にエラーがあります。near 'EXCEPT を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
も試しました:
SELECT DISTINCT F.FNAME
FROM FACULTY F
LEFT JOIN CLASS C ON C.FID = F.FID
WHERE C.FID IS NULL
私のデータベースにすべての部屋に行く教員がいる場合でも、「空のセット」を取得しました。