your table structure looks correct, since you are trying to create a many to many relationship, you need to use a linking table.
you would need to use a join query to relate the two main tables based on the linking table.
assuming that NavLinkParent relates to TopNav.TopNavID and NavLinkChild relates to SubNav.SubNavID the structure of the query would be:
SELECT TopNav.*, SubNav.*
INNER JOIN NavLink ON TopNav.TopNavID = NavLink.NavLinkParent
INNER JOIN SubNav ON SubNav.SubNavID = NavLink.NavLinkChild