2011-09-18 7 views
-1

3 개의 다른 사용자 ID (주문 요청을 한 주문, 주문한 주문과 주문을받은 주문)와 하나의 사용자 테이블이있는 하나의 주문 테이블이 있습니다. 하나의 선택 쿼리에서 user 테이블의 3 가지 다른 이름과 성을 모두 가져 오려고합니다. 이걸 좀 도와 주실 수 있습니까?동일한 mysql 쿼리에서 3 명의 다른 사용자를 찾고 싶습니다

+0

테이블 생성 명령문을 표시 할 수 있습니까? DDL. –

답변

0

이것은 똑같이 자체 조인 하나의 테이블에서 같은 다른 테이블 (이 예제에서는 3 번)으로 다중 방향 조인입니다.이 경우 테이블 별칭을 사용해야합니다. 단일 쿼리에서 단일 테이블의 여러 모양에 테이블 별칭을 사용하는 것은 SQL 세계에서 통과 의례입니다.

SELECT u1.firstname, u1.lastname, 
     u2.firstname, u2.lastname, 
     u3.firstname, u3.lastname, 
     o.order_num, o.placed_order_req, o.ordered_order, o.received_order 
    FROM Orders AS o 
    JOIN Users AS u1 ON o.placed_order_req = u1.user_id 
    JOIN Users AS u2 ON o.ordered_order_req = u2.user_id 
    JOIN Users AS u3 ON o.received_order_req = u3.user_id; 
+0

많이 들으세요! 어리석은 질문이라면 부르세요. –

+0

이것은 자체 조인이 아닙니다. – Hammerite

+0

@Hammerite - 네 말이 맞아. 자체 조인과 함께 필요한 동일한 테이블 이름에 대해 여러 개의 테이블 별칭이 필요하지만 이는 하나의 테이블에서 다른 테이블로의 다중 방향 조인입니다. –

관련 문제