2010-09-22 1 views
0

Эй, я как бы застрял, пытаясь оптимизировать запрос, у которого есть НЕ EXISTS-предложение на вложенном SELECT. Я переписывал свои запросы с вложенными выделениями, меняя их на соединения, но по этому поводу я не уверен, как объединить это с предложением NOT EXISTS. У меня есть следующий запрос:Как заменить NOT EXISTS вложенным select с помощью JOIN

SELECT `reg_no`, COUNT(*) AS `records_found` 
FROM (`club_records` AS `cr`) 
WHERE NOT EXISTS ( 
    SELECT `number` FROM `members` WHERE `members`.`number` = `cr`.`alt_reg_no` 
) 

ответ

4

http://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/

SELECT `reg_no`, COUNT(*) AS `records_found`,members`.`number` 
FROM `club_records` AS `cr` 
LEFT OUTER JOIN members` 
ON `members`.`number` = `cr`.`alt_reg_no 
WHERE members`.`number` IS NULL; 

внимание: член определение числа должно включать не нулевое ограничение

+0

Спасибо! Установите номер номера элемента NOT NULL, и это отлично работает – spinozf

Смежные вопросы