Поиск ключей в таблице БД, которых нет в списке - PullRequest
0 голосов
/ 11 августа 2010

на sybase. У меня есть загрузка первичных ключей

Если я это сделаю:

выбор ключа из таблицы, в которой вводится (... список из примерно 2000 ключей ...)

Я получаю около 1700 результатов. Какой самый простой способ получить список из ~ 300 записей в моем списке, которых нет?

Кажется, это должно быть легко, но я не могу разобраться ...

РЕДАКТИРОВАТЬ: Кажется, пример может быть в порядке

Если в моей таблице ключи 1,2,4, а в моем списке 1,2,3, я хочу запрос, который даст мне ответ 3 - элемент в моем списке, которого нет в таблице. Если я использую «НЕ В», я получаю ответ 4, что неправильно.

Ответы [ 2 ]

1 голос
/ 11 августа 2010

Я думаю, вам нужно будет поместить свои элементы в собственную таблицу, чтобы сделать их выбираемыми.После этого все просто ...

SELECT key
    FROM my_new_table
    WHERE key NOT IN (SELECT key
                          FROM Table);

(или любая более быстрая версия вышеупомянутого запроса).

0 голосов
/ 11 августа 2010

Я думаю, что ваш ответ на самом деле решается с помощью решения @BrianHooper, но ваш вопрос нуждается в уточнении.

Вы упомянули «список» чисел ... смежных или не применимых.В ответ на мой комментарий вы никогда не заявляли, что у вас есть две таблицы ...

Итак, это выглядит просто для удобства: у вас есть главная таблица инвентаря с 2000 предметами.Кроме того, у вас есть таблица активности продаж всех запасов, которые когда-либо продавались ... В этой таблице может быть 10 000 строк, из которых будет несколько продаж многих заданных предметов ... Однако НЕКОТОРЫЕ предметы никогда не продавались в пределах10000 продаж.Вы хотите знать, какие предметы НИКОГДА не продавались из инвентаря 2000 года ...

Мой запрос будет основан на описанном выше сценарии, но вам придется выполнить сопряжение с вашим реальным сценарием.

select   
      MyItemID
   from 
      MyInventoryTable
   where 
      MyItemID NOT IN 
              ( select SoldItemID
                   from SalesData );
...