누구나 내게 왜 AS id
과 AS r2
, USING id
을 코드에 사용하는지 설명 할 수 있습니까?언제 또는 왜 mysql을 사용하고 USING을 사용 하는가?
SELECT id, username FROM friendship JOIN (SELECT CEIL(RAND() * (SELECT MAX(id) FROM friendship)) AS id) AS r2 USING (id);
그냥 사용 목적을 알고 싶습니다.
누구나 내게 왜 AS id
과 AS r2
, USING id
을 코드에 사용하는지 설명 할 수 있습니까?언제 또는 왜 mysql을 사용하고 USING을 사용 하는가?
SELECT id, username FROM friendship JOIN (SELECT CEIL(RAND() * (SELECT MAX(id) FROM friendship)) AS id) AS r2 USING (id);
그냥 사용 목적을 알고 싶습니다.
마찬가지로 하위 쿼리의 별칭을 만들면 같은 명령 별칭 인 'id'를 using 명령과 함께 사용할 수 있습니다.
기본적으로 쿼리는 friendship 테이블의 id 열과 결합 할 수있는 결과 하나만 반환하기 때문에 우정 테이블이 id 열의 하위 쿼리에 참가하기를 원합니다.
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 절
두 테이블 모두 동일한 테이블입니다. 왜 ID가 동일하기 때문에 동일한 테이블의 ID에 가입해야합니까? – zac1987
이유 별칭을 작성해야합니다 (즉, 자연가 있습니다 가입 무엇)를 대신 내부 조인의 가입 및 사용하지? 하위 쿼리는 동일한 ID를 사용하지 않고도 동일한 결과를 반환합니다. 하위 쿼리는 우분투 테이블의 id 열에 여전히 가입 할 수 있습니다.이 ID는 쓰기가 없으므로 ID로 작성해야하는 이유는 무엇입니까? 신분증과 신분증은 무엇이 다른가요? – zac1987
@ Zac1987 Join 절에 기존 테이블이 없지만 하위 쿼리 결과가 있으므로 조인 조건을 지정해야하기 때문에 두 테이블 모두 id 열을 갖는 것은 사실입니다. 나는 그렇지 않다면 꽤 효과가 없을 것이라고 확신한다. –
'As ID'는 'JOIN'조건을 지정하는 것입니까? 보통 우리는'ON table1.id = table2.id'와 같은'JOIN' 조건을 지정합니다; 그래서'AS id'는'table2.id'와 똑같습니까? – zac1987