У меня есть несколько таблиц с именами таблиц: 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);
Мне нужно перебрать каждую строку для указанного выше набора результатов Hierarchy_Table,на основе Table_Name, PK_Column и Selected_ID, а также Parent_Table, Parent_Column и Selected_Parent_ID мне нужно получить все столбцы и их значения из таблиц 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 могут расти, поэтому мне нужно получить все столбцы и значения из этих таблиц в моих новых результатах.
Я был бы очень признателен за помощь.Заранее спасибо.