为什么mysql查询失败

时间:2011-04-20 18:17:15

标签: mysql mysql-error-1146

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 个答案:

答案 0 :(得分:2)

子查询d中的

(select d.mov from d)不是有效的表名。您是否尝试使用别名d在成员表中进行某种相关查询?

答案 1 :(得分:0)

mysql正在寻找绝对不存在的表d。

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

d无效,因为您无法将外部查询的别名用于内部查询(子查询)。您必须在子查询中重新定义表的别名。

答案 2 :(得分:0)

除了选择成员表中的所有行之外,忽略查询实际上没有做任何事情的事实,它不起作用的原因是你不能在子查询中使用外部别名“d”。试试这个:

SELECT name, family FROM member WHERE mov in (SELECT mov from member)