私は860アイテムのアイテムのリストを持っています。私はクエリを実行する:select * from tableA where item in (... items ...)
私は858項目を取得します。私はtableAにないリストの2つの項目を知りたいです。リストから返されないアイテム
NOTは、リストに含まれていないアイテムをすべて返します。リストに含まれていないアイテムをすべてテーブルに追加します。質問の私の元の理解に基づいて
私は860アイテムのアイテムのリストを持っています。私はクエリを実行する:select * from tableA where item in (... items ...)
私は858項目を取得します。私はtableAにないリストの2つの項目を知りたいです。リストから返されないアイテム
NOTは、リストに含まれていないアイテムをすべて返します。リストに含まれていないアイテムをすべてテーブルに追加します。質問の私の元の理解に基づいて
あなたは一時テーブル#List
を持っていたら、することができますが、以下をせよ;
CREATE TABLE #List
(
[ListItem] INT
)
SELECT
*
FROM
#List AS l
LEFT OUTER JOIN
tableA AS t
ON
t.[Item] = l.[ListItem]
WHERE
t.[Item] IS NULL
はアクションでそれを参照してください:あなたが使用しているデータベース
http://data.stackexchange.com/stackoverflow/query/61259/items-not-returned-from-a-list
は、私はちょうど
SELECT * FROM tableA WHERE item NOT IN (... items ...)
をキーワードNOTを追加することを提案しかし、コメントごとに上記の欲しいものを返しません。元の質問は、この新しい情報を含むように編集されました。
したがって、WHERE句のデータをクエリ可能な形式にする必要があります。ここでは、 "items"という名前の追加テーブルを作成し、各アイテムをこのアイテムテーブルに配置するINSERTステートメントを作成する方法を示します。私はあなたのデータにアクセスすることができないので、私はアイテムのために整数を使用し、より少量のデータで設定します。
--Set up some sample data
CREATE TABLE tableA(item INT PRIMARY KEY)
INSERT INTO tableA SELECT 1
INSERT INTO tableA SELECT 2
INSERT INTO tableA SELECT 3
INSERT INTO tableA SELECT 4
INSERT INTO tableA SELECT 9
INSERT INTO tableA SELECT 10
SELECT * FROM tableA WHERE item IN (0,1,2,3,4,5,6)
SELECT * FROM tableA WHERE item NOT IN (0,1,2,3,4,5,6)
-- Create a table and insert all the 860 items from your where clause
CREATE TABLE items(item INT)
INSERT INTO items SELECT 0
INSERT INTO items SELECT 1
INSERT INTO items SELECT 2
INSERT INTO items SELECT 3
INSERT INTO items SELECT 4
INSERT INTO items SELECT 5
INSERT INTO items SELECT 6
-- Want to find a query that returns all of the items in the newly created items table
-- that are not in the original tableA (in this example, the values returned are 0,5,6)
SELECT * FROM items WHERE item NOT IN (SELECT item FROM tableA)
? mysql?ポストグル?オラクル? – Bohemian
@Bohemian Oracle 10g – Mike