У меня есть таблица пользователей, которая содержит столбец xml для хранения пользовательских полей для демографических данных, которые исходят из анкеты профиля.Запрос столбца XML против другого
Демографические пример записи для пользователя:
<demographics>
<question_1>answer_1</question_1>
<question_2>answer_2</question_2>
<question_3>answer_3</question_3>
</demographics>
таблица назначений имеет еще один столбец XML для права пользователей, что опять-таки основана на анкете профиля.
<Eligibility>
<Expression>
<Question>question_1</Question>
<Answer>answer_1</Answer>
</Expression>
<Expression>
<Question>question_3</Question>
<Answer>answer_3</Answer>
</Expression>
</Eligibility>
Мне нужно найти все задания, которые соответствуют демографии пользователя на основе XML критериев, определенных в таблице. Оператор между критериями приемлемости должен быть «И». Ниже приведен запрос, который я написал
SELECT *
FROM Assignments AS a
WHERE Eligibility.exist('/Eligibility/Expression[Question= 1 and Answer=1]') = 1
AND Eligibility.exist('/Eligibility/Expression[Question= 2 and Answer=2]') = 1
Предположим, что у нас есть два назначения A1 и A2. A1 имеет критерии как Question1 = Answer1, а A2 имеет критерии Question2 = Answer2. Оба назначения удовлетворяют требованиям для пользователя. Однако указанный выше запрос не возвращает ни одно из двух назначений из-за «И» между критериями приемлемости.
Любая помощь будет оценена по достоинству.