2015-01-27 2 views
0

이 오류가 발생하는 이유는 무엇인지 혼란 스럽습니다. 여기에 (아주 간단한) 쿼리가 있습니다.고유하지 않음/테이블 별칭 '일시 중지'

SELECT * FROM consumer_info, respite INNER JOIN respite ON consumer_info.consumer_id = respite.consumer_id; 

난 그것을 다시 작성하고 아무 소용이 두 필드 (consumer_info.consumer_idrespite.consumer_id를) 별명했습니다. 나는 이것이 무엇을 일으킬 수 있는지 전혀 모른다. 어떤 도움도 인정 될 것이다.

명시 구문 :

SELECT * FROM consumer_info ci INNER JOIN respite r ON ci.consumer_id = r.consumer_id; 

암시 적 구문 :

답변

1

을 당신이있어 테이블에서 선택하고 또한 합류 :

SELECT * 
FROM consumer_info, respite 
        ^^^^^ 
INNER JOIN respite ... 
      ^^^ 

테이블을 여러 번 가입/사용할 수 있지만 테이블의 각 사용에는 고유 한 별칭이 있어야합니다.

FROM consumer_info, respite 
INNER JOIN respite AS somethingelse 
        ^^^^^^^^^^^^^^^^---- table alias 

다음 respite.fooFROM에 나열된 테이블의 복사본을 사용하는 것입니다 시도하고 somethingelse.fooJOIN에 나와있는 사본을 사용하는 것입니다.

1

(쿼리 모두 명시 적 및 암시 JOIN 구문이있다) 당신은 별칭을 설정하지 않은 당신의 조인 구문이 지저분

SELECT * FROM consumer_info, respite WHERE consumer_info.consumer_id = respite.consumer_id; 
2

두 개의 joi n 구문 - 사전 ANSI와 ANSI 조인. 다음과 같이 문을 다시 작성해야합니다 사전 ANSI 구문에서

SELECT * 
FROM consumer_info 
INNER JOIN respite ON consumer_info.consumer_id = respite.consumer_id; 

(가) (을 권장하지 않음)과 같을 것이다 가입 :

SELECT * 
FROM consumer_info, respite 
WHERE consumer_info.consumer_id = respite.consumer_id; 
관련 문제