Внутреннее соединение и прочее и поиск - PullRequest
1 голос
/ 08 марта 2019

У меня есть семь таблиц:

  1. Курс
  2. Course_Category
  3. CourseCourse_Category (это таблица мостов между Course и Course_Category)
  4. TrainerResourceRequirement
  5. CourseTrainerResourceRequirement (это таблица мостов между Course и TrainerResourceRequirement)
  6. UnitOfCompetency
  7. CourseUnitOfCompetency (это таблица мостов между Course и UnitOfCompetency)

Я пытаюсь создать поиск, чтобы вывести список курсов в соответствии с выбранной категорией Course_RecourceRequirement и UnitOfCompetency. Я написал хранимую процедуру, которая выглядит следующим образом:

select CourseName,ClientCourseTitle,CourseDescription,IsTheCourseDisplayedOnWeb, IsTheCourseArchived, minCandidates, maxCandidates,
Course_Category_Name =
STUFF((SELECT ', ' + CC.Course_Category_Name FROM Course_Category as CC
inner join CourseCourse_Category as CCC on CC.Course_CategoryID = CCC.Course_CategoryID
WHERE C.CourseID = CCC.CourseID and CC.Course_CategoryID = @Course_CategoryID
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 1, ''),
TrainerResourceName =
STUFF((SELECT ', ' + TRR.TrainerResourceName FROM TrainerResourceRequirement as TRR
inner join CourseTrainerResourceRequirement as CTRR on TRR.TrainerResourceRequirementID=CTRR.TrainerResourceRequirementID
WHERE C.CourseID = CTRR.CourseID and TRR.TrainerResourceRequirementID = @TrainerResourceRequirementID
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 1, ''),
UoC =
STUFF((SELECT ', ' +
UoC.UnitOfCompetencyCode + ' - ' + UoC.UnitOfCompetencyTitle as UnitofCompetencyTitle
FROM UnitOfCompetency as UoC
inner join CourseUnitOfCompetency as CUoC on UoC.UnitOfCompetencyID = CUoC.UnitOfCompetencyID
WHERE C.CourseID = CUoC.CourseID and UoC.UnitOfCompetencyID = @UnitOfCompetencyID
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 1, '')
FROM Course as C
order by CourseName

Однако, когда я пытаюсь найти результат, получается следующее:

Результат поиска

Но результат должен возвращать только те строки, которые удовлетворяют всем трем условиям.

Как мне реструктурировать мой запрос?

Заранее спасибо

...