2011-04-20 3 views
-1
select name from movie as d 
where d.mov = movie.mov; 

. 오류 1054 (42S22) : 알 수없는 열 'd.mov in'where 절 ' . 열이 있는지 확인하십시오.다음 mysql 쿼리를 실행하는 동안 오류가 발생했습니다.

하지만이

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

'moive'? 오타는 일반적으로 잘 작동하지 않습니다. – geekosaur

+0

무엇을하려고합니까? 테이블에 별칭을 지정하고 상관 관계가있는 이름과 상관되지 않은 이름을 모두 사용하여 열을 비교하는 이유는 무엇입니까? –

+0

왜 테이블의 별칭을 지정하고 동일한 열 값을 자체 테이블과 비교할 것입니까? 이 쿼리가 작동 중이면 항상 모든 행을 반환합니다. –

답변

3

테이블의 별칭을 정의 할 때 은 항상이 별칭을 사용해야합니다.

별칭을 정의한 후에는 해당 테이블을 에만 액세스 할 수 있기 때문에 첫 번째 쿼리가 작동하지 않습니다.

두 번째 쿼리는 열 이름이 고유 한 경우 표/별칭 접두사를 사용하지 않는 것이 유효하기 때문에 작동합니다.

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

에 해당하는 경우

+0

이상한 오류 메시지. 'd.mov '에 대해 왜 불평합니까? 확실히 'movie.mov'가 문제입니다. –

+1

@ Martin : 좋은 지적. 나는 그 세부 사항을 실제로 간과했다. 그러나 첫 번째 쿼리에 이미 한 가지 오타가 포함되어 있기 때문에 더 많은 오류 메시지가 실제로 쿼리에 속한 것은 아닙니다. –

0

"영화"또는 "영화"사실입니까? (간결하고 정확하지만 대답이 너무 짧음)

0

, 당신이 작성해야 생각보다

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