2010-11-09 41 views
0

我試圖找到一種方法來刪除我的數據庫表中的所有重複條目。因爲在刪除它們之前,我必須對這些重複項進行一些進一步的計算,所以我必須將它們放在臨時表中。通過SQL語句在rails中使用臨時表

的重複的檢索是一個相當複雜的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 

我能在這個聲明中臨時表?這項任務使用擴展名是否有意義?

回答

0

我發現這個鏈接:http://www.ruby-forum.com/topic/55322

當別人有類似的問題。他們基本上建議直接通過AR的execute()方法,或使用遷移樣式代碼(例如create_table:my_table等)。

相關問題