我正在尝试将祖父母表中的两条或多条记录配对,以便我可以使用一个孙子项来查找其孙子记录。
每个 Product_Maintenance 记录都有一个 Product Parent记录,每个 Product 记录都是 Product_Group Grandparent记录的一部分。
如图所示。
因此,我的查询将从今天创建的新创建的孙子 (Product_Maintenace) 记录开始,并将向上遍历层次结构到祖父记录。然后它将找到所有其他 Grand 孩子,然后将它们加入结果集。
到目前为止,这是我的查询,但问题是它似乎只是复制了一个孙子记录的结果而没有加入其他记录,我认为这是因为我的 WHERE 子句将它们过滤掉,因为它们没有创建日期今天。
SELECT product_id, created_date, maintenance_level
FROM Maintenance maint
--Traversing Up
JOIN Products prods
ON maint.product_id = prods.product_id
JOIN Groups grps
ON prods.parent_row_id = grps.row_id
--Find the linking of Groups
JOIN Groups link
ON grps.product_group_id = link.product_group_id
--Traversing down
--Now that all linked records are found find all children of those linked grandparents
JOIN Products prods
ON prods.par_row_id = link.row_id
JOIN Maintenance maint
ON maint.product_id = prods.product_id
WHERE
CREATED_DATE = sysdate
这会是嵌套选择语句有用的地方吗?