Сложный оператор SQL - PullRequest
       2

Сложный оператор SQL

2 голосов
/ 15 декабря 2010

У меня есть две таблицы.

Таблица A -> Сообщения (id, title, user_id, ..., создал_ат, ..)

и

tableB -> Репосты (id, post_id, user_id, ... creation_at, ...)

Итак, в моем контроллере приложения rails:

@posts = Post.find(:all, :conditions => ["user_id = ? OR id IN ( select post_id from reposts where user_id=? )", '1', '1'], :limit => 9)

Работает нормально, но:

Мне нужно ЗАКАЗАТЬ МОИМИ @posts объединением из двух столбцов "create_at" (созданный_пункт таблицы POSTS и созданный_т таблицы REPOSTS).

Любая помощь?

1 Ответ

1 голос
/ 15 декабря 2010

Попробуйте это:

class Post
  has_many :reposts
end


class Repost
  belongs_to :post
end    

Post.all(
  :include => :reposts, 
  :conditions => ["posts.user_id = ? OR reposts.user_id = ?", 1, 1],
  :order => "posts.created_at DESC, reposts.created_at DESC
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...