2

TableA と TableB の 2 つのテーブルがある場合、「値」が TableB のどの「値」とも一致しない場合、TableA の「id」を取得するにはどうすればよいですか?

表 A

+----+-------+
| id | value |
+----+-------+
| 1  |   a   |
| 2  |   b   |
| 3  |   c   |
| 4  |   d   |
| 5  |   e   |
+----+-------+

表 B

+----+-------+
| id | value |
+----+-------+
| 1  |   a   |
| 2  |   b   |
| 3  |   c   |
| 4  |   c   |
| 5  |   f   |
+----+-------+

結果表

+----+
| id |
+----+
| 4  |
| 5  |
+----+

編集済み (SQLFiddle): http://sqlfiddle.com/#!2/4c8c9

4

2 に答える 2

5

ID /値が両方のテーブルで同じであることを検証する場合は、次を使用します。

select distinct id
from tablea
where (id, value) not in (select id, value
                          from tableb)

SQL FiddlewithDemoを参照してください

値のみを比較する場合:

select distinct id
from tablea
where (value) not in (select value
                          from tableb)

SQL FiddlewithDemoを参照してください

于 2012-10-10T18:35:28.083 に答える
3
select a.id
from tableA a
left outer join tableB b on a.id = b.id and a.value = b.value
where a.id is not null and b.value is null

SQLFiddle デモ

于 2012-10-10T18:33:40.257 に答える