Я пытаюсь создать таблицу поиска, в которой порядок элементов имеет значение. Моя таблица поиска имеет следующую структуру
id table1id table2id
1 1 1
2 1 2
3 1 3
4 2 2
5 2 1
6 2 3
Моя цель - найти table1id на основе table2ids. Итак, пример запроса, который я запускаю,
Select table1id
from junctionTable
where table2ids in (1,2,3)
group by table1id
Having count(table1id) = 3
Однако это работает, он вернет как Table1Id 1, так и 2. Мне нужен только Table1ID, который имеет 1,2,3 в этом конкретном порядке, поэтому он должен возвращать только TableId = 1.
Размещение столбца порядка в таблице работает, однако это немного усложняет запрос по мере увеличения количества элементов.
select table1id from junctionTable
where table2id =1 and order =1 and
table2id = 2 and order =2
etc...
Могу ли я сделать что-то еще, о чем я не думаю? Или как лучше поступить в этой ситуации?
Вопрос возник из-за того, что я пытался нормализовать таблицы. См. Нормализовать таблицу с сильно связанными данными для справки.
having
? - person Ven   schedule 09.09.2016id
? Если нет, то да, вам нужен другой столбец для определения порядка. Таблицы сами по себе не имеют внутреннего порядка. - person Damien_The_Unbeliever   schedule 09.09.2016