我有5张表,如图所示。
ITEM_TYPE
Item_Type_ID Item_Type_Name Item_Class
1 System Group Group
2 System Component Component
3 System Component Item Item
4 Description Information
5 Further Description Information
6 Space Group Group
7 Void Space Space
Item_Type_Relationship
Item_Type_Relationship_ID F_Item_Type_ID S_Item_Type_ID Level
1 1 2 2
2 1 6 2
3 2 3 3
4 3 4 4
5 3 5 4
6 6 7 2
属性
Attribute_Type_ID Attribute_Type_Name Item_Type_ID
1 Vertical Location 1
1 Transverse Location 1
1 Alphanumeric ID 1
2 Alphanumeric ID 3
3 Vertical Location 6
3 Transverse Location 6
3 Alphanumeric ID 6
Attribute_LOV
Attribute_Type_ID Attribute_LOV_ID Attribute_Value Item_Type_ID
1 1 Upper 1
1 2 Port 1
1 3 No.1 1
2 4 No.5 3
3 5 Upper 6
3 6 Starboard 6
3 7 No.10 6
项目
Item_ID Asset_ID Item Name Item_Type_ID
1 2 Upper Port No.1 System Group 1
2 2 System Component 2
3 1 No.5 System Component Item 3
4 1 Description 4
5 1 Further Description 5
6 1 Upper Starboard No.10 Space Group 6
7 1 Void Space 7
F_Item_Type_ID
是
父亲Item_Type_ID
(与Item_Type_ID
相关)和S_Item_Type_ID
是兄弟Item_Type_ID
(也与Item_Type_ID
相关)。此表中的列level
与兄弟(S_Item_Type_ID
)层次结构中的级别相关。此表显示了数据库中层次结构的存在方式,但我发现很难在多个级别进行查询。
我想识别Item_Type.Item_Type_Name(s)
中“系统组”下所有级别中存在的所有Attribute.Attribute_Type_Name(s)
,Attribute_LOV.Attribute_Value(s)
和Asset_ID = 1
。
我正在努力将所有这些群组加入到一起,并在START WITH
和CONNECT BY
之间执行层次结构查询(使用F_Item_Type_ID
和S_Item_Type_ID
)。