2012-04-23 8 views
0

私はクエリのどこにプロパティの配列で作業しているのですか? [1,2,3,4]など。私はそのidを持つレコードが存在するかどうかを調べるためにテーブルをチェックする必要があります。私は存在するレコードではなく存在しないレコードに興味があります。返されるSQL Id存在しないと判明したレコードの引数

私はRubyで配列をループし、それぞれのSELECT要求を別々にしています。これは動作しますが、配列は非常に長く、多くの独立した要求を行うことは非常に非効率的です。

私は、配列全体をPostgresに渡す方法があるのだろうと思っていました。そして、Postgresは存在しないIDをすべて手渡してくれました。

おかげで、

クリス

答えて

1

オーケーはそれを考え出した:

SELECT * 
FROM unnest(ARRAY[1,2,3,4,5]) as s 
WHERE s NOT IN (SELECT id FROM my_table); 
+0

バージョン8.4以降では、 '使用しないIN''ではなくEXISTS'ないように、一般的に優れている: 'ASあなたがNULLを持っていると、あなたはそれほど驚かないでしょう。配列。 – kgrittn

+0

不具合ではなく、 'generate_series(1,5)as s'を使用する方がクリーンかもしれません。 –

関連する問題