Вопросы с тегом «exists»

68
Лучшая практика между использованием LEFT JOIN или NOT EXISTS

Есть ли лучшая практика между использованием LEFT JOIN или NOT EXISTS формата? Какая польза от использования одного над другим? Если нет, что должно быть предпочтительным? SELECT * FROM tableA A LEFT JOIN tableB B ON A.idx = B.idx WHERE B.idx IS NULL SELECT * FROM tableA A WHERE NOT EXISTS (SELECT...

62
MySQL: создать индекс, если не существует

Есть ли способ создать индекс в MySQL, если он не существует? MySQL не поддерживает очевидный формат: CREATE INDEX IF NOT EXISTS index_name ON table(column) ERROR 1064 (42000): You have an error in your SQL syntax;... MySQL version ( mysql -V) - 5.1.48, но я думаю, что MySQL не хватает CREATE INDEX...

35
IF EXISTS занимает больше времени, чем встроенный оператор select

Когда я запускаю следующий код, это занимает 22,5 минуты и читает 106 миллионов раз. Тем не менее, если я запускаю только внутреннюю инструкцию выбора, она занимает всего 15 секунд и читает 264 Кб. Как примечание, запрос на выборку не возвращает никаких записей. Любая идея, почему это IF...

19
Найти идентификаторы из списка, которого нет в таблице

Скажем, у меня есть следующая схема и данные: create table images( id int not null ); insert into images values(1), (2), (3), (4), (6), (8); Я хочу выполнить запрос как: select id from images where id not exists in(4, 5, 6); Но это не работает. Приведенный выше случай должен вернуться 5, так как он...

16
Заключение запроса в IF EXISTS делает его очень медленным

У меня есть запрос ниже: select databasename from somedb.dbo.bigtable l where databasename ='someval' and source <>'kt' and not exists(select 1 from dbo.smalltable c where c.source=l.source) Вышеуказанный запрос завершается за три секунды. Если приведенный выше запрос возвращает какое-либо...

11
Требует ли спецификация SQL GROUP BY в EXISTS ()

Microsoft в настоящее время разрешает этот синтаксис. SELECT * FROM ( VALUES (1) ) AS g(x) WHERE EXISTS ( SELECT * FROM ( VALUES (1),(1) ) AS t(x) WHERE g.x = t.x HAVING count(*) > 1 ); Обратите внимание, что GROUP BYв EXISTSпредложении нет этого действительного ANSI SQL. Или это просто...