1

わかりましたテーブル people があり、何千ものレコードを含む Id 列があります...このようなカンマ区切りの ID の別のリストがあります

1, 2, 457, 558, 998

この people テーブルをチェックして、5 つのレコードのうちどれが存在しないかを確認したい...

私は試した

select id from people where id not in (1, 2, 457, 558, 998)

ただし、これは、これらの 5 つのレコードで見つからないレコードだけでなく、他の千のレコードをすべて返します。

私が見逃しているアイデア

4

3 に答える 3

2
select a.id
from (
    select 1 as id
    union all
    select 2
    union all
    select 457
    union all
    select 558
    union all
    select 998
) a 
left outer join people p on a.id = p.id
where p.id is null

チェックしたい値がテーブルにある場合は、次のようにすることができます。

select c.id
from MyCheckValues c
left outer join people p on c.id = p.id
where p.id is null
于 2012-09-13T18:45:26.410 に答える
1

多分このようなもの:

Select id from people where id in (1, 2, 457, 558, 998)
and id not in ( select id from people )
于 2012-09-13T18:45:47.677 に答える
0
SELECT id FROM people WHERE id IN (1, 2, 457, 558, 998)

各「id」の倍数がある場合は、次を使用します。

SELECT DISTINCT(id) FROM people WHERE id IN (1, 2, 457, 558, 998)
于 2012-09-13T18:48:47.863 に答える