2012-02-24 2 views
1

쿼리에 가입 할 때 :오류 2 개 테이블

select i.Name,ri.Country,ri.State,ri.City 
from Information as i 
join ResidenceInformation as ri 
order by Name 

내가이 얻을 오류 :

Error code -1, SQL state 42X01: Syntax error: Encountered "order" at line 4, column 5. 
Line 1, column 1 

Execution finished after 0 s, 1 error(s) occurred. 

왜 내가 오류를 얻고 있습니까? 당신의 구문이 잘못 때문에

+0

netbeans와 함께 제공되는 derbi –

답변

4

오류 :

SELECT i.Name, ri.Country, ri.State, ri.City 
    FROM Information as i 
    JOIN ResidenceInformation as ri ON ri.column = i.column 
ORDER BY Name 

당신은 당신이 필요로하는 출력 올바르게 테이블을 연결 해당 컬럼의 이름 column를 교체해야합니다.

모호한 열 참조 오류로부터 보호하려면 ORDER BY에 테이블 별칭도 지정해야합니다.

1

당신은 오류가이 같은 on있을 필요가 join 후 :

select i.Name,ri.Country,ri.State,ri.City 
from Information as i 
join ResidenceInformation as ri 
    on ri.info_id=i.id -- <<< Added a join condition 
order by Name 

SQL은 테이블의 행을 것을 "최대 연결"하는 방법을 알 필요가있다 쿼리의 다른 테이블 (들)의 행 (들)에 합류합니다. ResidenceInformation에 이라고하는 Information에 외래 키가 있다고 가정합니다. Name모두ResidenceInformationInformation에있는 경우

, 당신은 테이블 이름이나 별칭으로 접두사해야합니다. 실제로, 명확한 추가를 위해 어쨌든 그것을하는 것이 좋습니다. 이 같은 기준을 가입 지정하는 잊었 때문에

0

여러분은 조인 절에 조인 할 열을 지정하는 것을 잊어 버린 것 같습니다. 이 두 테이블이 서로 어떻게 연결되는지 데이터베이스에 알려야합니다. ON i.id = ri.InformationId

또한
select i.Name,ri.Country,ri.State,ri.City 
from Information as i 
join ResidenceInformation as ri ON i.id = ri.InformationId 
order by i.Name 

같은 것을, 당신은 나뿐만 아니라 추가 한 order by 절에서 테이블 별칭을해야 할 수도 있습니다.