2012-12-26 4 views
2

SQL 데이터베이스에 세 개의 테이블이 있습니다. 이 관계형 시스템은 다른 사람이 디자인 한 것이지만 더 이상 회사에서 일하지 않기 때문에 새로운 쿼리를 작성하라는 요청을 받았습니다. 기밀 유지 목적으로 샘플 이름을 사용하겠습니다.단일 필드를 기반으로 세 개의 테이블을 쿼리하는 방법

  1. 고객
    CUSTOMER_ID
    product_code를
    product_color
    product_size
    ...

    product_i을 CUSTOMER_ID

  2. customer_link D

  3. customer_stats
    PRODUCT_ID
    product_actual_product
    product_actual_color
    product_actual_size
    ...

    사용자가 시스템에 정보를 입력하고 여러 제품을 가지고하는이 시스템은 설계되었습니다

각 고객. 고객의 경우 표시된 필드는 customer_id가 (1)에서 (2)로 연결된 모든 코드입니다. 2는 동일한 customer_id와 다른 product_id를 사용하여 (2)의 여러 레코드를 기반으로 (2)와 (3) 사이에 여러 링크를 가질 수 있습니다. (3)은 링크 된 product_id와 (1)에 열거 된 코드의 실제 텍스트를 갖는다.

결론은 (1)의 필드를 기반으로 SELECT 문이 필요하지만 (3)에 저장된 데이터가 필요하다는 것입니다. 와우 나는 혼란스럽고 실제로 도움을받을 수 있습니다.

+1

아래 링크를 참조 조인에 대한 자세한 내용은 어쩌면 당신은 또한 당신이 어떤 데이터베이스 시스템 명시해야 사용. – s1lence

+0

고객 테이블에 제품 코드, 색상, 크기 등에 대한 정보가 포함되어 있습니까? 그렇다면 디자인이 끔찍하게 부서집니다. 나는 그것이 일종의 copy'n'paste 오류라고 진심으로 희망하고있다! (그리고 나는 고객 통계 테이블의 칼럼에 완전히 확신하지 못했습니다 ... 그러나 이것은 실제 데이터베이스에있는 것의 시뮬레이션이라는 것을 알고 있습니다.) –

+0

몇 가지 샘플 데이터를 넣고 예상 한 산출. –

답변

4

이 꽤 정직해야한다,

SELECT a.*, c.* 
FROM customer a 
     INNER JOIN customer_link b 
      ON a.customer_ID = b.customer_ID 
     INNER JOIN Customer_stats c 
      ON b.product_id = c.product_id 

관련 문제