почему MySQL запрос не удается - PullRequest
0 голосов
/ 20 апреля 2011
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 ]

2 голосов
/ 20 апреля 2011

d в вашем подзапросе (select d.mov from d) не является допустимым именем таблицы. Вы пытаетесь сделать какой-то коррелированный запрос с таблицей-членом, используя псевдоним d здесь?

0 голосов
/ 20 апреля 2011

Игнорирование того факта, что запрос фактически ничего не делает, кроме выбора всех строк в таблице-члене, причина, по которой он не работает, заключается в том, что вы не можете использовать внешний псевдоним 'd' внутри своего подзапроса. Попробуйте это:

SELECT name, family FROM member WHERE mov in (SELECT mov from member)
0 голосов
/ 20 апреля 2011

mysql ищет таблицу d, которая определенно не существует.

select name,family from member d 
 where mov in(select d.mov from member d);  

d недопустимо, поскольку вы не можете использовать псевдоним внешнего запроса для внутреннего запроса (подзапроса).Вы должны переопределить псевдоним для таблицы в подзапросе.

...