2 つのテーブルがあり、両方にユーザー ID があるとします。テーブル 2 にはない、テーブル 1 のすべてのユーザー ID を返す操作を実行したいと考えています。これを行う簡単な方法が必要であることはわかっています。
4106 次
7 に答える
6
遅いですが、通常は「not in」などでこれを達成できます。(さまざまな RDBMS システムには、これをより適切な方法で行う関数が他にもあります。たとえば、Oracle には、これに使用できる 'exists' 句があります。
しかし、次のように言うことができます。
select id from table1 where id not in (select id from table2)
于 2011-01-31T23:56:51.687 に答える
5
いくつかの方法があります。を使用した1つのアプローチを次に示しNOT EXISTS
ます。
SELECT userid
FROM table1
WHERE NOT EXISTS
(
SELECT *
FROM table2
WHERE table1.userid = table2.userid
)
そして、結合を使用した別のアプローチを次に示します。
SELECT table1.userid
FROM table1
LEFT JOIN table2
ON table1.userid = table2.userid
WHERE table2.userid IS NULL
最速のアプローチは、データベースによって異なります。
于 2011-01-31T23:57:05.963 に答える
1
1 つの方法は、TSQL 方言がサポートしている場合にEXCEPTを使用することです。左結合およびヌル テストを実行するのと同じです。
于 2011-01-31T23:58:06.703 に答える
1
SELECT user_id FROM table1 LEFT JOIN table2 ON table1.user_id = table2.user_id WHERE table2.user_id IS NULL;
于 2011-01-31T23:58:57.293 に答える
1
SQL Server の場合:
SELECT id FROM table1
EXCEPT
SELECT id FROM table2
オラクル:
SELECT id FROM table1
MINUS
SELECT id FROM table2
残り:よくわかりません....
于 2011-02-01T00:00:02.333 に答える
0
これを試して:
SELECT id FROM table1 WHERE id NOT IN
(
SELECT id FROM table2
)
于 2011-01-31T23:57:04.380 に答える
0
select ID from table1
where ID not in (select ID from table2)
于 2011-01-31T23:57:07.053 に答える