Como puedo hacer un left join en un find, pues con :include => [:ZZZZ]
me hace un inner join
muchas gracias!
Como puedo hacer un left join en un find, pues con :include => [:ZZZZ]
me hace un inner join
muchas gracias!
Como puedo hacer un left join en un find, pues con :include => [:ZZZZ]
me hace un inner join
Puedes usar la opción :joins
A.find(:all, :joins => “LEFT JOIN B on B.a_id = id” )
HTH
Como puedo hacer un left join en un find, pues con :include => [:ZZZZ]
me hace un inner join
Include no hace un inner join… en versiones antiguas de rails include
hace un outer join. En versiones modernas include hace una segunda query
para la tabla incluída donde pone como condición que la foreign_key sea
uno de los IDs que ha recuperado en la query de la tabla principal.
El efecto es el mismo que en una outer, pero con la ventaja de que ocupa
mucha menos memoria.
Solamente en el caso de que tus conditions incluyan campos de la tabla
incluída (que tienen que ir en la forma nombre_tabla.nombre_campo aunque
el nombre de campo sea único) las versiones modernas de Rails se
comportarán como hacían antes y lanzarán una outer join.
Pero en ninguno de los casos tiran de inner por defecto (creo )
Si necesitas controlar exactamente cómo se hacen las joins, me temo que
tendrás que recurrir a la claúsula :join de active record. Lo malo de
usar join es que la estructura de lo que devuelve no es tan limpia como
en un find estándar con include.
saludos,
–
javier ramírez
…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez
cometi un error al escrivir el post inicial, yo me referia a hacer un
:joins => [:XXX]
que entonces siempre me hace un inner join, y en algún caso me
gustaria hacer un left join
perdon…
2009/4/9 javier ramirez [email protected]:
Las consultas con join son un arma peligrosa, y si tenemos activerecord
de
por medio aún más. Yo en casos complejos tiro de find_by_sql y asà la
consulta hace exactamente lo que yo quiero y no tengo sorpresas.
2009/4/9 LLeïr Borràs [email protected]
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs