mysql에서 같은 테이블에서 어떻게 두 번 조인합니까?
2 개의 테이블이 있습니다. 하나 (도메인)에는 도메인 ID와 도메인 이름 (dom_id, dom_url)이 있습니다.
다른 하나는 실제 데이터를 포함하며 그 중 2 개 열에는 TO 및 FROM 도메인 이름이 필요합니다. 따라서 도메인 테이블에서 도메인 이름 ID를 저장하는 rev_dom_from 및 rev_dom_for 열이 2 개 있습니다.
단순한.
이제 웹 페이지에 실제로 두 도메인 이름을 모두 표시해야합니다. LEFT JOIN domains on reviews.rev_dom_for = domains.dom_url 쿼리를 통해 하나 또는 다른 것을 표시하는 방법을 알고 있으며, dom_url을 반향하여 rev_dom_for 열의 도메인 이름을 반향합니다.
그러나 dom_rev_from 열에서 두 번째 도메인 이름을 어떻게 에코합니까?
다음 줄을 따라 다른 조인을 사용합니다.
SELECT toD.dom_url AS ToURL,
fromD.dom_url AS FromUrl,
rvw.*
FROM reviews AS rvw
LEFT JOIN domain AS toD
ON toD.Dom_ID = rvw.rev_dom_for
LEFT JOIN domain AS fromD
ON fromD.Dom_ID = rvw.rev_dom_from
편집 :
당신이하고있는 일은 테이블에 여러 번 가입하는 것입니다. 게시물의 쿼리를 살펴보십시오. 리뷰 테이블 (rvw라고도 함)에서 값을 선택합니다.이 테이블은 도메인 테이블 (FOR 및 FROM)에 대한 2 개의 참조를 제공합니다.
이 시점에서 Domain 테이블을 Reviews 테이블에 조인하는 것은 간단합니다. FOR의 경우 한 번 (toD로), FROM의 경우 두 번째 (fromD로)입니다.
그런 다음 SELECT 목록에서 DOMAIN 테이블의 LEFT JOINS에서 Domains 테이블을 참조하여 결합 된 각 테이블 별명으로 참조하여 DOM_URL 필드를 선택하고 ToURL 및 FromUrl로 별명을 지정합니다.
SQL의 앨리어싱에 대한 자세한 내용은 여기를 참조하십시오 .
다음 표가 주어집니다 ..
Domain Table
dom_id | dom_url
Review Table
rev_id | rev_dom_from | rev_dom_for
이 SQL을 사용해보십시오 ... (Stephen Wrighton이 쓴 것과 거의 똑같습니다) 트릭은 기본적으로 동일한 쿼리에서 도메인 테이블에서 두 번 선택하고 결과를 결합한다는 것입니다.
Select d1.dom_url, d2.dom_id from
review r, domain d1, domain d2
where d1.dom_id = r.rev_dom_from
and d2.dom_id = r.rev_dom_for
여전히 갇혀 있다면 이해하지 못하는 것이 정확히됩니다.
이것을 읽고 시도하면 도움이 될 것입니다.
1 번 테이블
column11,column12,column13,column14
표 2
column21,column22,column23,column24
SELECT table1.column11,table1.column12,table2asnew1.column21,table2asnew2.column21
FROM table1 INNER JOIN table2 AS table2asnew1 ON table1.column11=table2asnew1.column21 INNER TABLE table2 as table2asnew2 ON table1.column12=table2asnew2.column22
table2asnew1
다음과 일치하는 표 2의 인스턴스입니다. table1.column11=table2asnew1.column21
과
table2asnew2
다음과 일치하는 표 2의 다른 인스턴스입니다. table1.column12=table2asnew2.column22
참고 URL : https://stackoverflow.com/questions/199953/how-do-you-join-on-the-same-table-twice-in-mysql
'IT story' 카테고리의 다른 글
react.js의 인스턴스 v 상태 변수 (0) | 2020.08.06 |
---|---|
여러 페이지 앱에서 React 사용 (0) | 2020.08.06 |
PostgreSQL-기존 권한으로 사용자를 빠르게 삭제하는 방법 (0) | 2020.08.06 |
jquery 특정 인덱스에서 테이블에 새 행 삽입 (0) | 2020.08.06 |
Android에서 이벤트 처리 방법에서 반환되는 부울 값의 의미 (0) | 2020.08.06 |