내가 세 개의 테이블는 왼쪽
을 연관 표에 가입전망은 - 전망에 대한 전망 정보를
id | name | projectID
1 | p1 | 1
2 | p2 | 1
3 | p3 | 1
4 | p4 | 2
5 | p5 | 2
6 | p6 | 2
공동을
id
name
projectID
샘플 데이터를 보유 - 컨 조인트 정보를 보유
id
title
projectID
샘프 르 데이터
공동 잠재 값 보유 연관 테이블있다id | title | projectID
1 | color | 1
2 | size | 1
3 | qual | 1
4 | color | 2
5 | price | 2
6 | weight | 2
:
ConjointProspect
id
prospectID
conjointID
value
샘플 데이터
가id | prospectID | conjointID | value
1 | 1 | 1 | 20
2 | 1 | 2 | 30
3 | 1 | 3 | 50
4 | 2 | 1 | 10
5 | 2 | 3 | 40
하나 개 이상의 잠재 하나 이상의 conjoints있다 그들의 각각의 테이블에. 잠재 고객은 각 결합에 대해 가치가 있거나 없을 수 있습니다.
주어진 프로젝트의 각 잠재 고객에 대해 모든 결합 값을 추출하고 주어진 결합에 대해 ConjointProspect 테이블에없는 값에 대한 값이없는 경우 NULL을 표시하는 SQL 문을 갖고 싶습니다. 전망. ConjointProspect에 projectID이의 라인을 따라
는뭔가 1
prospectID | conjoint ID | value
1 | 1 | 20
1 | 2 | 30
1 | 3 | 50
2 | 1 | 10
2 | 2 | NULL
2 | 3 | 40
3 | 1 | NULL
3 | 2 | NULL
3 | 3 | NULL
나는 내부의 전망과 컨 조인트 테이블 후 왼쪽 조인을 사용 해봤 가입 =하지만 어딘가에 나는군요 (나에게) 이해가되지 않는 전망/공동 쌍에 대한 카티 제품
SELECT p.id, p.name, c.id, c.title, cp.value
FROM prospect p
INNER JOIN conjoint c ON p.projectID = c.projectid
LEFT JOIN conjointProspect cp ON cp.prospectID = p.id
WHERE p.projectID = 2
ORDER BY p.id, c.id
prospectID | conjoint ID | value
1 | 1 | 20
1 | 2 | 30
1 | 3 | 50
1 | 1 | 20
1 | 2 | 30
1 | 3 | 50
1 | 1 | 20
1 | 2 | 30
1 | 3 | 50
2 | 1 | 10
2 | 2 | 40
2 | 1 | 10
2 | 2 | 40
2 | 1 | 10
2 | 2 | 40
3 | 1 | NULL
3 | 2 | NULL
3 | 3 | NULL
안내는 대단히 감사하겠습니다 !!
귀하의 결합 표 샘플 ... 첫 번째 열에는 모두 1이 있습니다 ... 대신이 순서가 1-6이라는 의미였습니까? – DRapp
DRapp - 예, 했어요. 그 점을 지적 해 주셔서 감사합니다. 샘플 데이터를 편집했습니다. – TomH