Если у вас есть список внешних идентификаторов, который не хранится в базе данных, вы можете создать такой запрос, объединив все внешние идентификаторы в разделенный запятыми список значений, заключенный в скобки (чтобы поместить идентификаторы в отдельные строки):
with
cte as (
-- construct list of outside values in brackets here
select [] as Outside_Id from (values (1),(2),(4),(5))
)
select Outside_Id as UnusedId
from cte
where Outside_Id not in (select Item_id from ItemTable)
Это работает для не слишком большого количества внешних идентификаторов.
Если у вас есть внешние идентификаторы в таблице OutsideIdTable
, тогда вы можете использовать
select Outside_Id as UnusedId
from OutsideIdTable
where Outside_Id not in (select Item_id from ItemTable)