O
&& operador é um predicado que produz um true ou false resultado, não uma lista de valores. Se você estiver procurando a lista de
order_id que existem para client_id=1 e client_id=2 , a consulta seria: select order_id from simple_table where client_id in (1,2)
group by order_id having count(*)=2;
Isso é equivalente às interseções dos dois arrays se você considerar que esses arrays são conjuntos (sem duplicatas e as posições dos valores são irrelevantes), exceto que você não precisa usar arrays, SQL padrão simples é bom o suficiente.