SQL выборка по фильтрам с логикой И фильтр1 И фильтр2?

Когда вы выполняете SQL-выборку с использованием нескольких фильтров, и вам требуется применить логику И между ними (т.е. выполнить запрос, который удовлетворяет двум или более условиям сразу), есть несколько способов сделать это.

1. Использование оператора AND:
В SQL вы можете использовать оператор AND для объединения двух или более условий в одном выражении WHERE. Например:

SELECT * FROM table
WHERE filter1 AND filter2;

Здесь "table" - это название таблицы, в которой вы ищете данные, "filter1" и "filter2" - это два условия, которые должны быть выполнены одновременно.

2. Использование вложенных условий:
Если вам нужно добавить более сложную логику к вашим фильтрам, вы можете использовать вложенные условия с помощью операторов AND и OR. Например:

SELECT * FROM table
WHERE (filter1 AND filter2) OR (filter3 AND filter4);

Здесь "filter3" и "filter4" представляют другие условия, и запрос будет возвращать строки, которые удовлетворяют либо условиям (filter1 и filter2), либо условиям (filter3 и filter4).

3. Использование оператора INTERSECT:
В некоторых СУБД, таких как Oracle и PostgreSQL, доступен оператор INTERSECT, который позволяет выполнять пересечение результатов двух или более запросов. Например:

SELECT column1 FROM table
WHERE filter1
INTERSECT
SELECT column1 FROM table
WHERE filter2;

Здесь "column1" - это столбец, который вы хотите выбрать, и два запроса выбирают строки, которые соответствуют каждому из фильтров filter1 и filter2. INTERSECT позволяет вам получить только общие результаты между этими двумя запросами.

В зависимости от вашей СУБД и требований к запросу, один из этих подходов может оказаться наиболее удобным и эффективным.