Почему MySQL запрос не удается
mysql> select name,family from member as d
where mov in(select d.mov from d);
,
ERROR 1146 (42S02): Table 'film.d' doesn't exist
3 ответа
d
в вашем подзапросе (select d.mov from d)
не является допустимым именем таблицы. Вы пытаетесь сделать какой-то коррелированный запрос с таблицей элементов, используя псевдоним d здесь?
mysql ищет таблицу d, которой определенно не существует.
select name,family from member d
where mov in(select d.mov from member d);
d
недопустимо, потому что вы не можете использовать псевдоним внешнего запроса для внутреннего запроса (подзапрос). Вы должны переопределить псевдоним для таблицы в подзапросе.
Не обращая внимания на тот факт, что запрос на самом деле ничего не делает, кроме выбора всех строк в таблице-члене, причина, по которой он не работает, заключается в том, что вы не можете использовать внешний псевдоним 'd' внутри своего подзапроса. Попробуй это:
SELECT name, family FROM member WHERE mov in (SELECT mov from member)