0

How could I run the following query in rake task ?

DELETE FROM crawled_categories WHERE id NOT IN (
   SELECT id FROM (
       SELECT DISTINCT(site_id, parent_category, breadcrumb), max(id) AS id
       FROM crawled_categories 
       WHERE map_id is null
       GROUP BY site_id, parent_category, breadcrumb
   ) AS tmp
) AND map_id IS NULL
Mahmoud M. Abdel-Fattah
  • 1,479
  • 2
  • 16
  • 34

1 Answers1

0

I tried the following code and it worked fine :

ActiveRecord::Base.connection.execute("DELETE FROM crawled_categories WHERE id NOT IN ( SELECT id FROM ( SELECT DISTINCT(site_id, parent_category, breadcrumb), max(id) AS id FROM crawled_categories WHERE map_id is null GROUP BY site_id, parent_category, breadcrumb ) AS tmp ) AND map_id IS NULL")
Mahmoud M. Abdel-Fattah
  • 1,479
  • 2
  • 16
  • 34