SQL到Rails查询
有人能把我的Sql查询转换成Rails查询吗SQL到Rails查询,sql,ruby-on-rails,ruby,Sql,Ruby On Rails,Ruby,有人能把我的Sql查询转换成Rails查询吗 SELECT DISTINCT conversation_cbgs.* FROM "conversation_cbgs" INNER JOIN "message_cbgs" ON "message_cbgs"."conversation_cbg_id" = "conversation_cbgs"."id" INNER JOIN "user_message_cbgs" ON "user_message_cbgs"."message_cbg_i
SELECT DISTINCT conversation_cbgs.* FROM "conversation_cbgs"
INNER JOIN "message_cbgs"
ON "message_cbgs"."conversation_cbg_id" = "conversation_cbgs"."id"
INNER JOIN "user_message_cbgs"
ON "user_message_cbgs"."message_cbg_id" = "message_cbgs"."id"
WHERE "user_message_cbgs"."user_id" = 1
ORDER BY conversations_cbgs.updated_at DESC
您必须首先在表之间建立关联。如果存在关联,则显示有问题的关联。
或
您可以通过
模型执行此查询。通过sql查找(sql\U查询)
假设您的模型构建正确-顺便说一句,这对回答您的问题的人很有帮助-您会有以下情况:
Conversation.select("DISTINCT conversation_cbgs.*")
.joins(:messages)
.joins(:user_messages)
.where("user_message_cbgs.user_id = ?", 1)
.order("conversations_cbgs.updated_at DESC")
还有其他使用作用域和合并等的方法,但您还没有发布任何模型供我们展示
ConversationCbg.find(:all, :conditions=>["user_message_cbgs.user_id=?",1], :joins=>"As conversation_cbgs inner join message_cbgs on message_cbgs.conversation_cbg_id=conversation_cbgs.id inner join user_message_cbgs on user_message_cbgs.message_cbg_id=message_cbgs.id" , :select=>"Distinct conversation_cbgs.*", :order=> "conversations_cbgs.updated_at desc")