私はこのような何かを期待しています:
SELECT am."id", am."field", am."field1"
FROM "polls_nullableintegerarraymodel" am
WHERE am."id" = ANY(am."field");
また、テーブルの別名を書くのは読みするクエリがはるかに簡単に作る方法に注意してください。
EDIT:
ここでは、この作業を示すサンプルコードは、次のとおり
with t as (
select 1 as id, '{2}'::integer[] as field1 union all
select 2 as id, '{1, 2}':: integer[] as field1
)
select *
from t
where id = any(field1);
にのみ第二の行を返します。
EDIT II:
SELECT tb1."id", tb1."field", tb1."field1"
FROM "polls_nullableintegerarraymodel" tb1
WHERE tb1."field" <@ (SELECT array_agg("id") FROM tb1);
これはおそらくあなたが望むものを達成するための簡単な方法ですが、これはあなたがしようとしているもののように見える:
あなたはこれをしたいように見えます。あなたのコメントによると
質問を読むにはさまざまな方法があります。どうか明らかにしてください。スクリーンショットとしてではなく*テキスト*としてデータを提供する。あなたのPostgresのバージョンとテーブル定義を提供し、そのサンプルを意味のあるものにし、期待される結果を追加してください。 –