Я даже не знаю, как задать этот вопрос.
У меня есть таблица тегов:
TagId Tag
----- -----
1 Fruit
2 Meat
3 Grain
У меня есть таблица событий:
EventId Event
------- -----------
1 Eating Food
2 Buying Food
Что мне нужно сделать, это вернуть только события, с которыми связаны все выбранные теги.
Если выбраны три тега, отображаются только те события, у которых есть все три.
Например:
Таблица сопоставления
EventId TagId
------- -----
1 1
1 3
2 1
Если я напишу запрос, подобный этому:
select * from MapTable where where tagId in (1,3)
Это вернет Еду и покупает еду.
Но мне нужно вернуть события, которые имеют оба тега 1 и 3. Это означает, что единственным случаем в этом случае, который я бы возвратил, будет Eating Food, поскольку в нем есть оба выбранных тега.
Мне было интересно, можно ли это сделать в TSQL или мне придется использовать бизнес-уровень, чтобы перевести его в объект для возврата обратно в GUI.
Спасибо.