source

어떻게 mysql에서 같은 테이블에 두 번 앉지?

lovecheck 2023. 2. 1. 21:54
반응형

어떻게 mysql에서 같은 테이블에 두 번 앉지?

테이블이 두 개 있어요.1개의 도메인에는 도메인 ID와 도메인 이름(dom_id, dom_url)이 있습니다.

다른 하나는 실제 데이터를 포함하며, 두 개의 열에는 TO 및 FROM 도메인 이름이 필요합니다.따라서 도메인 테이블에서 도메인 이름 ID를 저장하는 rev_dom_from과 rev_dom_for 열이 2개 있습니다.

간단하죠.

이제 웹 페이지에 두 도메인 이름을 모두 표시해야 합니다.왼쪽 JOIN 도메인 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개 제공됩니다.

이 시점에서 도메인 테이블을 Reviews 테이블에 참여시키는 것은 간단합니다.FOR의 경우 1회(toD로 에일리어스), FROM의 경우 2회(fromD로 에일리어스)입니다.

다음으로 SELECT 목록에서 DOM_URL 필드를 DOMAIN 테이블의 LEFT JOINs에서 선택하고 Domains 테이블을 참조하여 조인된 각 테이블의 에일리어스로 참조하고 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

반응형