1

私は2つのテーブルを持っています:

フィードバック : faceid (int として)、Poolid (int として)、deleted (boolean として)

プール: id (int)、canceled (boolean)

一部の行に同じ値が含まれているという事実を除いて、2 つのテーブル間の DB 統合はまったくありません (pool.id は feedback.poolid と同じにすることができます)。

SQLでクエリをどこに書くかは、次のようになります。

SELECT Pool.* , Feedback.* FROM Pool, Feedback WHERE faceid = params[:faceid] 
and deleted = 'f' and (Pool.id = Feedback.poolid and Pool.cancel = 'f') 

それを実装するための最良の(そしてパラメータ化された)方法は何ですか?

4

2 に答える 2

3

次のように動作すると思います:

 Pool.find_by_sql("select * from pools,feedbacks where pools.id = feedbacks.pool_id and cancelled = false and deleted = false and faceid = #{params[:faceid]}")
于 2013-01-30T07:28:01.803 に答える
0
@host = Pool.find_by_sql("SELECT pools.* FROM pools, feedbacks WHERE (pools.id = feedbacks.poolid) AND (pools.cancel = 'f') AND (feedbacks.deleted = 'f') AND (feedbacks.faceid = #{params[:faceid]})")

皆さん、ありがとうございました

于 2013-01-30T21:27:30.687 に答える