에서 열을 가져 오기 :몇 가지 질문 SQL 아래 관련을 가지고 내부 쿼리
SELECT mattyp.ID As mattypId, mattyp.Name As mattypName
FROM T_MaterialType as mattyp
WHERE mattyp.ID IN
(SELECT mather_mattyp.FK_Material_Type_ID
FROM T_Material_T_Hersteller_T_MaterialType As mather_mattyp
WHERE mather_mattyp.FK_Material_Hersteller_ID IN
(SELECT mat_her.ID
FROM T_Material_T_Hersteller As mat_her
INNER JOIN T_Material As mat ON mat_her.FK_Material_ID = mat.ID
INNER JOIN T_Hersteller As her ON mat_her.FK_Hersteller_ID = her.ID
WHERE mat_her.FK_Hersteller_ID = 29
AND mat_her.ID IN
(SELECT FK_MaterialHersteller_ID
FROM T_MaterialHersteller_KatSub_SubSubKat
WHERE FK_KatSubKat_ID = 249)))--AND (FK_Subsubkat_ID = 91 OR FK_Subsubkat_ID IS NULL))))
당신이 위에보다시피 나는 그 열을 :
mattyp.ID As mattypId, mattyp.Name As mattypName
그러나 전체 SQL 내에서, 나는 또한 싶습니다
:Name field from table mat (T_Material) and Name field from her (T_Hersteller).
어떻게 구현할 수 있습니까? 현재 내가 상단에 다음과 같이 수행 할 때
SELECT mattyp.ID As mattypId, mattyp.Name As mattypName, mat.Name, her.Name
나는이 오류 MSG를 얻을 :
메시지 4104, 수준 16, 상태 1, 줄 47
다중 부분 식별자 "매트. 이름 "을 묶을 수 없습니다.메시지 4104, 수준 16, 상태 1, 줄 47
"her.Name"부분 식별자를 바인딩 할 수 없습니다.
나는 이런 식으로했다하지만 난 사람이 확인할 수 있습니다?
SELECT mattyp.ID As mattypId, mattyp.Name As mattypName, mat.Name, her.Name
FROM T_MaterialType as mattyp
INNER JOIN T_Material_T_Hersteller_T_MaterialType As mather_mattyp ON mattyp.ID = mather_mattyp.FK_Material_Type_ID
INNER JOIN T_Material_T_Hersteller As mat_her ON mather_mattyp.FK_Material_Hersteller_ID = mat_her.ID
INNER JOIN T_Material As mat ON mat_her.FK_Material_ID = mat.ID
INNER JOIN T_Hersteller As her ON mat_her.FK_Hersteller_ID = her.ID
WHERE mat_her.FK_Hersteller_ID = 29
AND mat_her.ID IN
(SELECT FK_MaterialHersteller_ID
FROM T_MaterialHersteller_KatSub_SubSubKat
WHERE FK_KatSubKat_ID = 249)--AND (FK_Subsubkat_ID = 91 OR FK_Subsubkat_ID IS NULL))))
많은 내부 쿼리를 중첩해야합니까? 일반적인 '내부 조인 (inner joins)'으로 처리 할 수 없습니까? 나는 그것을 단순화시킬 수 있다고 생각한다. –