// load the data for the blog posts

Build Query for Parts Hierarchy

--- Simple query showing list of parts --- select part_no ,description from part; --- Show parts and thier composition --- select part.part_no , part.description , assembly.assembly_part_no , assembly.quantity from part join assembly on assembly.base_part_no = part.part_no; --- Wait, where did the top level part go? --- --- We lost it because of the join. Why? --- --- bring back in the top level part with an outer join --- select part.part_no , part.description , assembly.assembly_part_no , assembly.quantity from part Left join assembly on assembly.base_part_no = part.part_no; --- rename the part table in preparation for the next step --- select base_part.part_no , base_part.description , assembly.assembly_part_no , assembly.quantity from part base_part left join assembly on assembly.base_part_no = base_part.part_no; --- Bring in the name of of the assembled part --- --- This requires us to join to the part table a second time, requiring aliases on the part table --- select base_part.part_no , base_part.description , assembly.assembly_part_no , assembly.quantity , assembled_part.description as assembled_part_description from part base_part left join assembly on assembly.base_part_no = base_part.part_no left join part assembled_part on assembled_part.part_no = assembly.assembly_part_no;