Я пытаюсь вложить внутреннее соединение в доступе внутри правого соединения. Первый запрос на правое соединение:
SELECT * FROM ProjectMilestone AS a
RIGHT JOIN ProjectMilestone AS b ON a.PredecessorMilestone =
b.ProjectMilestoneID
Где при объединении первый оператор выбора будет иметь d.MilestoneName
Второй запрос внутреннего соединения:
SELECT d.MilestoneName FROM ProjectMilestone AS c INNER JOIN Milestone AS d
ON c.MilestoneID = d.MilestoneID
Что я прочитал с доступом, так это то, что существует проблема с выполнением внутреннего соединения после правого соединения, поэтому я не уверен, что делать.Любая помощь будет принята с благодарностью.Спасибо.
Пример данных:
ProjectMilestone Table
ProjectMilestoneID, MilestoneID, etc etc, PredecessorMilestone (which is linked to ProjectMilestoneID on a 0-1 to 1 cardinality)
79, 1 , , Null
80, 2, , 79
81, 3, , 80
Milestone Table
MilestoneID, MilestoneName
1, Handover
2, Deposit
3, Handover Panels
Итак, я получаю следующие результаты:
Null
Handover
Deposit
Итак, для второго результата (передача обслуживания): который в таблице ProjectMilestoneэто запись ProjectMilestoneID 80, PredecessorMilestone - 79, затем получить ProjectMilestoneID 79 с помощью правого соединения с другим экземпляром таблицы ProjectMilestone (поскольку он связан с той же таблицей), чтобы найти значение MilestoneID (1) из строки, в которой значение ProjectMilestoneID 79, затем найдите соответствующую запись MilestoneName в таблице Milestone для MilestoneID 1, который является передачей.
Надеюсь, это имеет больше смысла.