Почему 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)
Другие вопросы по тегам