Condiciones sobre consulta JOIN

Volviendo al tema de los :conditions ¿como puedo especificar un filtro
de
una select join de dos tablas que incluya campos de ambas? Es decir:

select … from t1, t2 where t1.t2_id=t2.id #join
and t1.campo1=x
and t2.campo2=y

gracias.

como ejemplo:

Modelo.find(:all, :joins => “tabla1 left join tabla2 on tabla1.id =
tabla2.id”, :conditions => [“tabla2.edad = ?”, 3])

tabla1 es la tabla que corresponde a “Modelo”.

El día 11/10/07, Rafa C. [email protected] escribió:

On 10/11/07, Rafa C. [email protected] wrote:

Volviendo al tema de los :conditions ¿como puedo especificar un filtro de
una select join de dos tablas que incluya campos de ambas? Es decir:

select … from t1, t2 where t1.t2_id=t2.id #join
and t1.campo1=x
and t2.campo2=y

find(:all, :condition => ["modelo.otro_id=otro.id AND modelo.campo1 =
? AND otro.campo2 = ? ", x, y], :include => :otro)

claro, eso asume que modelo.belongs_to :otro (o has_many)…

igual puedes hacer :join => “t2 ON t1.t2_id = t2.id”
explicitamente… lo cual es util si tus modelos no tienen relaciones
definidas en rails, o si quieres optimizar el join con condiciones
adicionales