Помогите написать запрос.
Есть 3 массива со значениями 3 полей таблицы A[a1,a2], B[b1,b2], C[c1,c2] соответственно.
Есть запрос:
SELECT *
FROM T
WHERE Field1 = a1 AND Field2 = b1 AND Field3 = c1
UNION
SELECT *
FROM T
WHERE Field1 = a2 AND Field2 = b2 AND Field3 = c2
То есть нужно найти все записи, значения полей которых равны наборам из массивов (a[N],b[N],c[N]).
Если массивы большие размером, не хочется лепить запрос через UNION, он выполняется долго и
размер этого запроса большой.
Может быть можно сократить, что-то типа такого
SELECT *
FROM T
WHERE Field1 = ANY(ARRAY[a1,a2,a3]) AND Field2 = ANY(ARRAY[b1,b2,b3]) AND Field3 = ANY(ARRAY[c1,c2,c3])
Но в таком виде запрос работает неверно, возвращает записи в полях которых входит хотя бы одно значение массива
из каждого массива.
Отредактированно polin111 (16.06.2019 07:28:12)