我有多个表,表名分别为TableA(主键列:ID1)、TableB(主键列:ID2)、TableC(主键列:ID3)。
CREATE TABLE TableA(
ID1 INTEGER NOT NULL PRIMARY KEY
,TableA_Name VARCHAR(14) NOT NULL
,TableA_Desc VARCHAR(27) NOT NULL
);
INSERT INTO TableA(ID1,TableA_Name,TableA_Desc) VALUES (1,'TableA Parent1','This is TableA description1');
INSERT INTO TableA(ID1,TableA_Name,TableA_Desc) VALUES (2,'TableA Parent2','This is TableA description2');
INSERT INTO TableA(ID1,TableA_Name,TableA_Desc) VALUES (3,'TableA Parent3','This is TableA description3');
CREATE TABLE TableB(
ID2 INTEGER NOT NULL PRIMARY KEY
,TableB_Name VARCHAR(11) NOT NULL
,TableB_Desc VARCHAR(27) NOT NULL
);
INSERT INTO TableB(ID2,TableB_Name,TableB_Desc) VALUES (1,'TableB Kid1','This is TableB description1');
INSERT INTO TableB(ID2,TableB_Name,TableB_Desc) VALUES (2,'TableB Kid2','This is TableB description2');
INSERT INTO TableB(ID2,TableB_Name,TableB_Desc) VALUES (3,'TableB Kid3','This is TableB description3');
CREATE TABLE TableC(
ID3 INTEGER NOT NULL PRIMARY KEY
,TableC_Name VARCHAR(11) NOT NULL
,TableC_Desc VARCHAR(27) NOT NULL
);
INSERT INTO TableC(ID3,TableC_Name,TableC_Desc) VALUES (1,'TableC kid1','This is TableC description1');
INSERT INTO TableC(ID3,TableC_Name,TableC_Desc) VALUES (2,'TableC kid2','This is TableC description2');
INSERT INTO TableC(ID3,TableC_Name,TableC_Desc) VALUES (3,'TableC Kid3','This is TableC description3');
INSERT INTO TableC(ID3,TableC_Name,TableC_Desc) VALUES (4,'TableC Kid3','This is TableC description4');
我有名为Hierarchy_Table的层次结构表。
CREATE TABLE Hierarchy_Table(
Table_Name VARCHAR(6) NOT NULL PRIMARY KEY
,PK_Column VARCHAR(3) NOT NULL
,Selected_ID INTEGER NOT NULL
,Hierarchy_Level INTEGER NOT NULL
,Parent_Table VARCHAR(6)
,Parent_Column VARCHAR(4)
,Selected_Parent_ID INTEGER
);
INSERT INTO Hierarchy_Table(Table_Name,PK_Column,Selected_ID,Hierarchy_Level,Parent_Table,Parent_Column,Selected_Parent_ID) VALUES ('TableA','ID1',1,1,NULL,NULL,NULL);
INSERT INTO Hierarchy_Table(Table_Name,PK_Column,Selected_ID,Hierarchy_Level,Parent_Table,Parent_Column,Selected_Parent_ID) VALUES ('TableB','ID2',1,2,'TableA','ID1',1);
INSERT INTO Hierarchy_Table(Table_Name,PK_Column,Selected_ID,Hierarchy_Level,Parent_Table,Parent_Column,Selected_Parent_ID) VALUES ('TableC','ID3',1,3,'TableB','ID2',1);
INSERT INTO Hierarchy_Table(Table_Name,PK_Column,Selected_ID,Hierarchy_Level,Parent_Table,Parent_Column,Selected_Parent_ID) VALUES ('TableC','ID3',2,3,'TableB','ID2',1);
INSERT INTO Hierarchy_Table(Table_Name,PK_Column,Selected_ID,Hierarchy_Level,Parent_Table,Parent_Column,Selected_Parent_ID) VALUES ('TableB','ID2',2,2,'TableA','ID1',1);
INSERT INTO Hierarchy_Table(Table_Name,PK_Column,Selected_ID,Hierarchy_Level,Parent_Table,Parent_Column,Selected_Parent_ID) VALUES ('TableC','ID3',3,3,'TableB','ID2',2);
INSERT INTO Hierarchy_Table(Table_Name,PK_Column,Selected_ID,Hierarchy_Level,Parent_Table,Parent_Column,Selected_Parent_ID) VALUES ('TableC','ID3',4,3,'TableB','ID2',2);
我需要根据 Table_Name、PK_Column 和 Selected_ID 以及 Parent_Table、Parent_Column 和 Selected_Parent_ID 遍历上述 Hierarchy_Table 结果集的每一行,我需要从表 TableA、TableB 和 TableC 中获取所有列及其值。
我的 SQL 查询应该是什么样子?我想要的结果集应包含 Selected_ID、TableA_Name、TableA_Desc、TableB_Name、TableB_Desc、TableC_Name、TableC_Desc、Selected_Parent_ID、Parent_Name、Parent_Desc 列。
注意:TableA、TableB、TableC 列可以增长,因此我需要在新结果中从这些表中获取所有列和值。
我真的很感激一些帮助。提前谢谢。