 |
J'ai plusieurs tables et je n'arrive pas à faire, je ne sais pas comment faire une requête imbriquée avec des includes quand il y a des conditions sur des tables du :include
T1( id, lib)
T2( id, lib, T1_id)
T3( id, lib, T2_id)
T4( id, lib, T3_id)
T5( id, lib, updated_at)
@all_row = T5.find(:all, :conditions => ["lib = ? AND updated at between ? and ?", '1', @date_debut, @date_fin], :include => {:T1 => :T5})
comment faire une condition sur le T5, T5.lib = 1.
La requête sql fonctionne mais elle est moins pratique à manipuler dans la vue
T5.find_by_sql("select t5.*, t4.*, t3.*, t2.* from T5 as t5, T4 as t4, T3 as t3, T2 as t2 WHERE t5.T4_id = t4.id and t4.T3_id = t3.id and t3.T2_id = t2.id and t2.T1_id = 1 and t5.lib = '1' and t5.updated_at between '2007-11-01' and '2007-11-30'")
J'envisage si la solution semble trop sioux de créer les champs T*_id dans chaque sous table. Peut être que ça sera plus performant. J'ai pas beaucoup d'expérience projet, c'est mon 2ème projet avec une bdd.
T1( id, lib)
T2( id, lib, T1_id)
T3( id, lib, T1_id, T2_id)
T4( id, lib, T1_id, T2_id, T3_id)
T5( id, lib, T1_id, T2_id, T3_id, updated_at)
|
 |
il y a 7 heures 43 min
il y a 10 heures 5 min
il y a 1 jour 19 heures
il y a 4 jours 1 heure
il y a 6 jours 14 heures
il y a 6 jours 15 heures
il y a 6 jours 15 heures
il y a 6 jours 19 heures
il y a 1 semaine 13 heures
il y a 1 semaine 13 heures