3

次のような行 (読みやすくするために複数の行に分割):

ValueMapping
    .joins(:variation)
    .where(
        :mapper_id => 1,
        :variations => {:name => 'de'}
    )
    .update_all(:value => 'Beispiel')

次の SQL ステートメントを生成します。

UPDATE value_mappings
SET value = 'Beispiel'
WHERE value_mappings.id IN (
    SELECT value_mappings.id
    FROM
        value_mappings
        INNER JOIN variations ON variations.id = value_mappings.variation_id
    WHERE
        value_mappings.mapper_id = 1
        AND variations.name = 'de'
)

しかし、PostgreSQL 固有のリクエストをもっと取得したいと思います。

UPDATE value_mappings
SET value = 'Beispiel'
FROM
    variations
WHERE
    variations.id = value_mappings.variation_id
    AND value_mappings.mapper_id = 1
    AND variations.name = 'de'
)

ActiveRecordで可能ですか?

4

0 に答える 0