2010-12-15 7 views
2

J'ai deux tables.Une instruction SQL compliquée

TableA -> Messages (id, titre, user_id, ..., created_at, ..)

et

tableB -> reposts (id, post_id, user_id, ... created_at, ...)

donc, dans mes rails contrôleur app:

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

Il fonctionne très bien, mais:

je commander par mon @posts par une moissonneuse-batteuse de deux colonnes "created_at" (created_at de la table POTEAUX et created_at de reposts de table)

Toute aide?

Répondre

1

Essayez ceci:

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 
) 
+0

Je vais l'essayer! Je vous remercie! – Lamp