MySQL считает, что подзапрос выведен, когда это не так!

EXPLAIN SELECT node_id FROM node WHERE person_id IN (SELECT person_id FROM user WHERE is_locked = 0); 

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

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

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