В моей базе данных есть 2 таблицы.
Таблица 1 = wp_bibliography, хранит информацию о журнальных статьях
+------------+---------+
| post_id | title |
+------------+---------+
| 1 | Nature |
| 2 | Science |
| 3 | Neuron |
+------------+---------+
Таблица 2 = wp_term_relationships, хранит различные термины тегов
+------------+---------+
| object_id | tag_id |
+------------+---------+
| 1 | 106 |
| 2 | 108 |
| 3 | 106 |
+------------+---------+
Post_id и object_id связаны между собой.
Я хотел бы установить флажок множественного выбора, чтобы я мог возвращать результаты для 108 или 106 или для обоих.Например, если я проверю 106 и 108, у меня будут возвращены post_ids 1,2,3, если я просто выберу 106, у меня будут возвращены post_ids 1 & 3, и если я выберу 108, у меня просто будет возвращен post_id 2
<div class="list-group-item checkbox">
<label><input type="checkbox" value="106" >106</label>
<label><input type="checkbox" value="108" >108</label>
</div>
Запрос, который выполняется при отправке (и работает), выглядит следующим образом, но его необходимо сделать динамическим (что я могу сделать), пример ниже, если пользователь выбрал и 106, и 108.
SELECT *
FROM wp_bibliography x
JOIN wp_term_relationships y
ON y.object_id = x.post_id
WHERE y.term_taxonomy_id IN(106,108)
GROUP BY post_id HAVING COUNT(*) = 2
Мой вопрос, это лучший способ сделать то, что я хочу?Обратите внимание, что мои флажки с несколькими вариантами выбора, приведенные выше, будут иметь до 20 значений, например,
HAVING COUNT(*) = 20
Есть ли более эффективный и лучший способ сделать это?