レコードの引き算を行なう場合は 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 | ペパーミント |