나는이처럼 보이는 EAV 테이블을 설계 특성SQL은
,536,913,632 : 속성 테이블에 연결, 첫 번째 테이블에 피벗을 사용한 후AttributeID AttributeName
1 Hobbies
2 Name
3 Gender
4 IrisColor
: 속성을지도로
SubjectID Hobbies Name Gender IrisColor
1 1 1 2 3
거의 정확
하지만, (취미입니다) SubjectAttribute 1은 첫 번째 테이블에 한 번 더 나타납니다 (SubjectDetails), 그래서 내가 무엇을 달성하고자하는 것은 이것이다 :
SELECT
SubjectID,
Hobbies,
Name,
Gender,
IrisColor
FROM
(
SELECT SubjectID, attr.AttributeName as attribute, ValueID from SubjectDetails, SubjectAttributes as attr WHERE SubjectDetails.AttributeID=attr.ID
) as t
PIVOT(
MAX(ValueID)
FOR attribute IN (Hobbies,Name,Gender,IrisColor)) AS t1
WHERE SubjectID=1
10 나는이 얻을 :
SubjectID Hobbies Name Gender IrisColor
1 **1,2** 1 2 3
나는 분리기를 사용하는 것에 대해 걱정하지 않는다 언급해야하고 나는 그것이있는 물건 기능을하지만 통증이 PIVOT 물건을 결합하는 것을 일을 시도했습니다 (또는 모르겠어 어떻게) .. 어떤 제안? 이 일을해야
이
을 사용할 필요를 생각하지 질문. –
필자는 그렇게 할 수 없습니다. 반복되는 경우에도 각 속성에 대해 별도의 행을 갖는 것이 요구 사항입니다. 나는보기에서 그것을하는 것을 wan't 만, 그러나 쉼표 간격으로 저장에서 것과 같이 아닙니다 – berthos