我需要以下方案的帮助
表A是层次表。表B是交易表。我需要更改表b以从表A中引入deptdesc,classdesc,subclassdesc。如何在此场景中加入两个表以获取表b中的相应描述字段,如结果所示。感谢您的帮助
表A :
DeptID ClassID SubClassID DeptDesc ClassDesc SubClassDesc
001 001 001 Math A A1
001 001 002 Math A A2
001 002 001 Math B B1
002 001 001 Eng A A1
002 002 001 Eng B B1
002 002 002 Eng B B2
表B
deptid Classid subclassid updatedate Status
001 002 002 01-Mar-16 Yes
002 001 001 02-may-16 No`
表B结果
deptid Classid subclassid updatedate Status Deptdesc ClassDesc Subclassdesc
001 002 002 01-Mar-16 Yes Math B B1
002 001 001 02-may-16 No Eng A A1`
答案 0 :(得分:1)
使用Inner Join
SELECT TableB.deptID, TableA.ClassID, TableB.subClassID, updatedate, Status, DeptDesc,
ClassDesc, SubClassDesc FROM TableB
INNER JOIN TableA
ON TableA.DeptId = TableB.deptId
AND TableA.ClassId = TableB.classId
AND TableA.SubclassId = TableB.subclassId
你会得到结果:
Table B Result
deptid Classid subclassid updatedate Status Deptdesc ClassDesc Subclassdesc
002 001 001 02-may-16 No Eng A A1
使用Left Join
代替Inner Join
,您应该得到结果:
Table B Result
deptid Classid subclassid updatedate Status Deptdesc ClassDesc Subclassdesc
001 NULL 002 01-Mar-16 Yes NULL NULL NULL
002 001 001 02-may-16 No Eng A A1
但你不能拥有:
Table B Result
deptid Classid subclassid updatedate Status Deptdesc ClassDesc Subclassdesc
001 002 002 01-Mar-16 Yes Math B B1
002 001 001 02-may-16 No Eng A A1
因为您没有DeptId = 1, ClassId = 2, SubClassId = 2 in TableA.