MySQL считает, что подзапрос является производным, когда это не так! - PullRequest
5 голосов
/ 25 ноября 2010
EXPLAIN SELECT node_id 
          FROM node 
         WHERE person_id IN (SELECT person_id 
                               FROM user 
                              WHERE is_locked = 0);

Результаты в MySql говорят мне, что подзапрос получен. Но это не так!

(я знаю, что это легко можно переписать как JOIN, но я хочу знать, почему MySQL считает, что это зависимый подзапрос.)

1 Ответ

3 голосов
/ 25 ноября 2010

Это ошибка в оптимизаторе запросов MySQL. Казалось бы, если таблица в подзапросе совпадает с таблицей в основном запросе, она считается зависимым подзапросом, даже если это явно не должно быть, и не существует простого решения. Сожалею; пойти на объединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...