Я пишу запрос в рельсах. У меня есть таблицы под названием Школа и Навыки.
Умение имеет столбцы
id: integer
name: text
school_id: integer
У меня есть @skills, в котором есть несколько строк. Но у @skills могут быть повторяющиеся имена.
Я хочу удалить повторяющиеся строки из @skills, где school_id == 1.
Например, если @skills возвращает
#<ActiveRecord::Relation [#<Skill id: 249, name: "3 D Priniting", school_id: 1>,
#<Skill id: 258, name: "Cinematography", school_id: 11>,
#<Skill id: 174, name: "Sports", school_id: 1>,
#<Skill id: 259, name: "Cinematography", school_id: 1>,
#<Skill id: 300, name: "Sales", school_id: 11>,
#<Skill id: 301, name: "Marketing", school_id: 11>,]
Здесь Skill ID 258 и 259 имеют одинаковые имена. Поэтому я хочу удалить 259, потому что он имеет school_id == 1.
Я использовал следующий запрос SQL, но он выбирает MIN (id).
SELECT MIN(id) as id, school_id
FROM `skills`
GROUP BY `skills`.`tag_id`,
`skills`.`tag_type`, `skills`.`school_id`, `skills`.`master_tag_id`
Могу ли я удалить дубликаты таким образом? И я хочу сделать это в одном запросе.
Примечание. Решение в ActiveRecord приветствуется.