レコードの引き算を行なう場合は MINUS を使用します。こちらも構文の形式は UNION と同じです。
複数の検索結果の差集合を取得するにはEXCEPT句もしくはMINUS句を使用します.どちらの構文を使用するかはお使いのDBMSによって異なります。また残念ながらAccessとMySQLには対応する構文はサポートされていません。以下に各DBMSごとに使用可能なSQLを示します。
DBMS | SQL |
---|---|
Access | 対応していない |
SQLServer | EXCEPT |
Oracle | MINUS |
MySQL | 対応していない |
PostgreSQL | EXCEPT |
サンプル
従業員
従業員コード | 従業員名 |
---|---|
A0001 | チャーリー |
A0002 | ペパーミント |
受給者
受給者コード | 受給者名 |
---|---|
A0001 | チャーリー |
B0001 | スヌーピー |
B0002 | ウッドストック |
SQL
SELECT * FROM 従業員
MINUS
SELECT * FROM 受給者
結果
従業員コード | 従業員名 |
---|---|
A0002 | ペパーミント |