Это лучший способ использовать активную запись для реализации этого SQL? - PullRequest
0 голосов
/ 24 июня 2019
select t1.id, t1.title from posts t1
inner join (select title, body from posts group by title) as t2 on t1.title = t2.title where title = ?

Пробовал:

Post
  .select(:id, :title)
  .joins('INNER JOIN (SELECT title, body from posts AS t2)')
  .group(:title)
  .where('title = ?', title)

Не знаю, как установить t1 на него.

Если нет, возможно, ActiveRecord::Base.connection - единственный способ.

Подробнее

Для этого sql:

p = Post.select("t1.title")
        .from("posts t1")
        .joins("INNER JOIN (SELECT title, MAX(id) AS maxID FROM posts WHERE category_id = ? GROUP GY title) AS t2 ON t1.title = t2.title AND t1.id = t2.maxID", 1)

Почему здесь нельзя установить параметр category_id в методе joins?

После запуска этого источника p.title получил NoMethodError: undefined method title.

1 Ответ

1 голос
/ 27 июня 2019

Используйте ActiveRecord::Base.connection.execute вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...