У меня есть три таблицы в формате «многие ко многим». Т.е. таблицы A, B и AB настроены так, как вы ожидаете.
Учитывая некоторый набор идентификаторов A, мне нужно выбрать только те строки в AB, которые соответствуют всем идентификаторам.
Что-то вроде следующего не будет работать:
"ВЫБРАТЬ * ИЗ АБ, ГДЕ A_id = 1 И A_id = 2 И A_id = 3 И ..."
Поскольку ни в одной строке не будет более одного A_id
Использование ИЛИ в SQL-описании не лучше, так как оно дает результаты всех результатов, которые имеют хотя бы один из идентификаторов A (тогда как я хочу только те строки, которые имеют все идентификаторы).
Edit:
Извините, я должен объяснить. Я не знаю, имеет ли отношение многие ко многим отношение к актуальной проблеме. Таблицы изложены следующим образом:
Table People
int id
char name
Table Options
int id
char option
Table peoples_options
int id
int people_id
int option_id
Итак, у меня есть список людей, список опций и таблица опций и людей.
Итак, учитывая список идентификаторов опций, таких как (1, 34, 44, ...), мне нужно выбрать только тех людей, у которых есть все опции.