Прошу прощения за неопределенное название, но я действительно не могу сделать это более конкретным с моим английским.Mysql select complex query
У меня есть эта таблица называется posts__tags
, что я использую, чтобы связать post ids
и tag ids
со следующими столбцами
record_id
, post_id
и tag_id
. Ниже приведен пример выборки
record_id | post_id | tag_id
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 2
5 | 3 | 1
6 | 3 | 3
7 | 4 | 2
8 | 4 | 3
9 | 4 | 4
У меня есть функция PHP, которая имеет массив tag_ids
в качестве параметра. Скажем, например, что мой параметр - array(2,3)
. Мне нужно выбрать все post_id, которые связаны с tag_id = 2
AND tag_id = 3
.
В приведенном выше примере я должен получить 1 и 4 post_id, так как только те, которые связаны как с тегами, так и с тегами 2 и 3.
Каков наилучший способ достичь этого с помощью запроса MySQL?
Заранее спасибо
Обратите внимание, что запись, по-видимому избыточны. На остальных столбцах может быть сформирован вполне исправный PK. – Strawberry
record_id используется в разных запросах, просто не в этом, но спасибо за точку! –
Вы уверены? Это кажется маловероятным. – Strawberry