Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проверка на существование записи  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Добрый день, подскажите как мне проверять на то что есть ли запись такая в таблице.

-- Этот запрос работает не корректно, потому что если записи нету вообще в таблице, то он не сработает
 SELECT S.*
	from Sales s
		inner join Actors a on s.ActorID = a.Actor
	where s.Status = 0 
	AND s.Sale NOT IN (SELECT B.saleID FROM ActorBalls B)
	AND A.Actor = 11293


Как сделать более корректно?
25 окт 17, 12:47    [20898469]     Ответить | Цитировать Сообщить модератору
 Re: Проверка на существование записи  [new]
Добрый Э - Эх
Guest
Pabl0,

[NOT] EXISTS же
25 окт 17, 12:51    [20898498]     Ответить | Цитировать Сообщить модератору
 Re: Проверка на существование записи  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Так?

SELECT S.*
	from Sales s
		inner join Actors a on s.ActorID = a.Actor
	where s.Status = 0 
	AND NOT EXISTS(SELECT B.saleID FROM ActorBalls B WHERE B.saleID = S.Sale)
	AND A.Actor = 11293
25 окт 17, 12:52    [20898500]     Ответить | Цитировать Сообщить модератору
 Re: Проверка на существование записи  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4393
Pabl0,

IF EXISTS (SELECT ...) 

SELECT 1 WHERE EXISTS (SELECT ...) 
UNION ALL 
SELECT 0 WHERE NOT EXISTS (SELECT ...) 
25 окт 17, 12:52    [20898503]     Ответить | Цитировать Сообщить модератору
 Re: Проверка на существование записи  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3466
Pabl0
Добрый день, подскажите как мне проверять на то что есть ли запись такая в таблице.

-- Этот запрос работает не корректно, потому что если записи нету вообще в таблице, то он не сработает
 SELECT S.*
	from Sales s
		inner join Actors a on s.ActorID = a.Actor
	where s.Status = 0 
	AND s.Sale NOT IN (SELECT B.saleID FROM ActorBalls B)
	AND A.Actor = 11293


Как сделать более корректно?


а как запрос должен сработать, если "нету вообще в таблице"?
25 окт 17, 13:34    [20898764]     Ответить | Цитировать Сообщить модератору
 Re: Проверка на существование записи  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
Pabl0,

никогда не используйте NOT IN(SELECT ...). Во избежание... Лучше NOT EXISTS()
25 окт 17, 14:44    [20899185]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить