2011-07-04 3 views

답변

1

마찬가지로 하위 쿼리의 별칭을 만들면 같은 명령 별칭 인 'id'를 using 명령과 함께 사용할 수 있습니다.

기본적으로 쿼리는 friendship 테이블의 id 열과 결합 할 수있는 결과 하나만 반환하기 때문에 우정 테이블이 id 열의 하위 쿼리에 참가하기를 원합니다.

+0

이유 별칭을 작성해야합니다 (즉, 자연가 있습니다 가입 무엇)를 대신 내부 조인의 가입 및 사용하지? 하위 쿼리는 동일한 ID를 사용하지 않고도 동일한 결과를 반환합니다. 하위 쿼리는 우분투 테이블의 id 열에 여전히 가입 할 수 있습니다.이 ID는 쓰기가 없으므로 ID로 작성해야하는 이유는 무엇입니까? 신분증과 신분증은 무엇이 다른가요? – zac1987

+0

@ Zac1987 Join 절에 기존 테이블이 없지만 하위 쿼리 결과가 있으므로 조인 조건을 지정해야하기 때문에 두 테이블 모두 id 열을 갖는 것은 사실입니다. 나는 그렇지 않다면 꽤 효과가 없을 것이라고 확신한다. –

+0

'As ID'는 'JOIN'조건을 지정하는 것입니까? 보통 우리는'ON table1.id = table2.id'와 같은'JOIN' 조건을 지정합니다; 그래서'AS id'는'table2.id'와 똑같습니까? – zac1987

0

OscarMk는 이미 AS를 설명했지만 USING은 ON table1.id = table2.id과 같습니다. USING을 사용하면 RDBMS는 기본적으로 열을 단일 열로 병합합니다. 즉, table1 또는 table2의 열을 원할 경우 RDBMS에 알릴 필요가 없습니다. 간단한 예 :

SELECT table1.id 
FROM table1 
INNER JOIN table2 
    ON table1.id = table2.id; 


SELECT id 
FROM table1 
INNER JOIN table2 
    USING (id); 

이러한 쿼리는 동일합니다. 첫 번째 쿼리에서 table1.id를 사용하는 것을 잊어 버린 경우 RDBMS에서 오류가 발생했을 것입니다. 당신은 일반적으로 자연을 할 수

사용하거나 전혀 ON 절

+0

두 테이블 모두 동일한 테이블입니다. 왜 ID가 동일하기 때문에 동일한 테이블의 ID에 가입해야합니까? – zac1987

관련 문제