1

データベースのテーブルで重複したすべてのエントリを削除する方法を見つけようとしています。重複を削除する前に、この重複をさらに計算する必要があるため、それらを一時テーブルに配置する必要があります。

重複の取得はかなり複雑なSQLステートメントであり、active_recordの方法で実行したくありません...

SELECT bad_rows. *
FROM settings AS bad_rows
INNER JOIN (

    SELECT user_id, record_id, MIN( id ) AS min_id
    FROM settings
    GROUP BY user_id, record_id
    HAVING COUNT( * ) >1

) AS good_rows 
ON good_rows.user_id = bad_rows.user_id
AND good_rows.record_id = bad_rows.record_id
AND good_rows.min_id <> bad_rows.id

このステートメントでこの一時テーブルを生成するにはどうすればよいですか? このタスクに ar-extentions を使用するのは理にかなっていますか?

4

1 に答える 1

0

私はこのリンクを見つけました:http ://www.ruby-forum.com/topic/55322

他の誰かが同様の問題を抱えていた場所。彼らは基本的に、ARのexecute()メソッドを直接実行するか、移行スタイルコード(例:create_table:my_tableなど)を使用することを推奨しました。

于 2011-07-11T16:22:42.567 に答える