执行以下mysql查询时出错

执行以下mysql查询时出错,mysql,mysql-error-1054,Mysql,Mysql Error 1054,。 错误1054(42S22):“where子句”中的未知列“d.mov” . 我确信mov列是存在的 但这是真的 select name from movie as d where d.mov = movie.mov; “电影”还是“电影”?(简洁、准确,但回答太短。)为表定义别名时,必须始终使用该别名 第一个查询不起作用,因为一旦定义了别名,该表现在只能使用该别名访问 第二个查询可以工作,因为只要列名是唯一的,省略表/别名前缀是合法的 如果 select name from movie a

。 错误1054(42S22):“where子句”中的未知列“d.mov” . 我确信mov列是存在的

但这是真的

select name from movie as d
where d.mov = movie.mov;

“电影”还是“电影”?(简洁、准确,但回答太短。)

为表定义别名时,必须始终使用该别名

第一个查询不起作用,因为一旦定义了别名,该表现在只能使用该别名访问

第二个查询可以工作,因为只要列名是唯一的,省略表/别名前缀是合法的

如果

select name from movie as d
where d.mov = mov;
是真的,比我想你应该写的要多

select name from moive as d
where d.mov = mov;

moive
?打字错误通常不好用。你想做什么?为什么要给表一个别名,然后使用相关和不相关的名称将列与自身进行比较?为什么要给表加别名,并将相同的列值与自身进行比较。如果该查询正在运行,它将始终返回所有行。@John-它将删除
mov
NULL
的行。@John Hartsock:实际上,如果
mov
可以包含NULL值,它将不会返回所有行。不过错误消息很奇怪。它为什么抱怨
d.mov
?当然问题出在电影上。@Martin:说得好。我实际上忽略了那个细节。但是,考虑到第一个查询已经包含一个输入错误,可能会有更多错误,并且错误消息并不真正属于该查询。
select name from moive as d
where d.mov = moive.mov;