2
raw SQLをsqlalchemy core/ormに変換しようとしていますが、いくつかの問題があります。 、INTERSECTとUNNESTを使用したsqlalchemy
SELECT
(SELECT UNNEST(MyTable.my_array_column)
INTERSECT
SELECT UNNEST(ARRAY['VAL1', 'VAL2']::varchar[])) AS matched
FROM
MyTable
WHERE
my_array_column && ARRAY['VAL1', 'VAL2']::varchar[];
次のクエリで私が私のネストされたSELECT
には必要ありませんFROM
句を与える:ここではSQLです
FROM
を含まないように
select
を伝えることができますどのように
matched = select([func.unnest(MyTable.my_array_column)]).intersect(select([func.unnest('VAL1', 'VAL2')]))
# SELECT unnest(MyTable.my_array_colum) AS unnest_1
# FROM MyTable INTERSECT SELECT unnest(%(unnest_3)s, %(unnest_4)s) AS unnest_2
句? func.unnest()
は列のみを受け入れることに注意してください。だから私はfunc.unnest('my_array_column')
を使うことはできません。
素晴らしい:私たちは
label
を適用することにより、SQLAlchemyのはSELECT
リストにINTERSECT
クエリを入れて作り、それが正しくMyTable
を関連付けるようにする必要があります。ありがとうございました。 – norbertpy