Как использовать WHERE IN в Rails 3, который работает в системах баз данных?
Я довольно новичок в Rails и немного опыт работы с языками типа SQL.
Я работаю над проектом на Rails 3, где моя тестовая версия продукта и версия продукта моего менеджера проекта используют две разные системы баз данных (я использую MySQL, но я не уверен, что он использует).
У меня здесь есть общий SQL-оператор, который я хочу работать с ОБА наших баз данных. Есть ли способ сделать это только с помощью функции ActiveRecord?
SELECT * FROM MyRecords
WHERE (f1, f2, f3, f4) IN (
SELECT f1, f2, f3, f4
FROM MyRecords
GROUP BY f1, f2, f3, f4
HAVING count(*) = 1
);
Другими словами, я пытаюсь выполнить инструкцию "WHERE IN" (и, честно говоря, я даже не знаю, что делает инструкция WHERE IN, просто этот ответ делает то, что мне нужно: как я могу (или могу ли я) ВЫБЕРИТЕ DISTINCT для нескольких столбцов?) Чтобы быть более точным, я должен дополнить следующую функцию ActiveRecord, чтобы она выполняла вышеуказанный запрос:
def MyRecordFunction
MyRecords.where('org_id=?', self.org_id).order('f4')
end
Спасибо.
1 ответ
Ознакомьтесь с Руководством по ActiveRecord http://guides.rubyonrails.org/active_record_querying.html
Там есть некоторая информация об указании условий на соединения и тому подобное.
Не может быть более конкретным, потому что вы не указали, с какой другой БД вы хотите совместимость.