2016-05-05 11 views
0

申し訳ありませんが、私の質問が愚かまたはbasic.I DBからidレコードが存在しないようにしようとしています。しかし、それはすべての記録を示している。テーブルSQLのレコードが存在しないようにするには?

---------------------+ 
id | name | age | 
---------------------+ 
1 | ase | 33 | 
3 | ase | 33 | 
4 | ase | 33 | 
5 | ase | 33 | 
7 | ase | 33 | 
9 | ase | 33 | 
---------------------+ 

iは番号IN( '1'、 '2'、 '4'、 '5'、 '6'、 '7')テーブル名がこの

SELECT *のようなものを試みたがすべてのレコードを表示します。この特定のクエリID 2,6は、テーブルの表示に存在しないので、結果として表示する必要があります。私はこれを解決するためにいくつかの助けてください。与えられたから

----------------------+ 
id not exist in table | 
----------------------+ 
      2   | 
      6   | 
----------------------+ 

などのおかげ

期待出力は声明の中で、このIDは、このようなテーブル何かに存在していません。結果としてテーブルに存在しないIDを表示する必要があります。

+0

:ここleft join代わりのnot inを使用してソリューションです。 –

+0

私は更新された質問があります。 は、テーブルに存在しない与えられたIDからの出力として表示する必要があります – Munna

+3

まああなたは[類似のクエリ](http://stackoverflow.com/questions/1389605/sql-find-missing-ids-in-a-table )を使用して欠落IDを検索します。 –

答えて

2

値の派生テーブルを使用する必要があります。あなたは、このための番号テーブルを必要とする

select n.n 
from (select 1 as n union all select 2 union all select 4 union all select 5 union all 
     select 6 union all select 7 
    ) n left join 
    tablename t 
    on t.id = n.n 
where t.id is null; 
+0

お返事ありがとうございます。しかし、私は300以上のIDを持っています。IN(1,2,3 ... etcc。)のようなクエリがありますか? – Munna

+0

値をテーブルに入れ、クエリのテーブルを使用する必要があります。 –

関連する問題