Я надеюсь, что смогу объяснить это хорошо.Если что-то не понятно, пожалуйста, спросите
У меня есть запрос на получение данных для пользователя, к которому у него есть доступ к определенным объектам.
В основном в моей пользовательской таблице есть столбецгде пользователь может иметь одно или несколько запятых отдельных целых чисел.Вот несколько примеров того, как это будет выглядеть:
TABLE # 1
User #1 value: ,1,
User #2 value: ,1,3,5,12,
User #3 value: ,12,
User #4 value: ,14,3,5,
User #5 value: ,14,
Моя таблица секунд имеет очень похожее поле.Если у меня во второй таблице есть записи, подобные этой:
TABLE # 2
User #1 value: ,3,
User #2 value: ,3,
User #3 value: ,3,
User #4 value: ,10,
User #5 value: ,11,5,12,
User #6 value: ,5,12,
Так что я пытаюсь добиться, например, взять значение User # 2 из TABLE #1, и я хочу получить всех пользователей в ТАБЛИЦЕ № 2, где любое из их значений содержится в значениях пользователей № 2.Поскольку пользователь № 2 имеет значение 1,3,5,12, я должен получить результат из таблицы 2 следующим образом:
User #1
User #2
User #3
User #5
User #6
В настоящее время я использую следующее:
SELECT a.Name
FROM TABLE2 a
WHERE
CharIndex(','+convert(varchar,a.Agency)+',',(Select Agency from TABLE1 where UserID = 123)) > 0
Похоже, это не дает желаемых результатов.Это будет прекрасно работать, если в TABLE # 1 есть только 1 значение, например, 3, но не несколько значений.