Bonjour,

Amine la deuxieme methode que t'as mentionné a bien marché en fin j ai
mis fait la requette suivante qui fonctionne aussi.

SELECT *  FROM machines, appels where machines.name =
appels.machine_name and appells.date > '2009-02-15 00:00:00' AND
count(appels.machine_name) = 0 GROUP BY appels.machine_name


Merci


2009/2/15 Mehdi AMINI <joker....@gmail.com>:
>
>
>
>> j utilise l association avec machine_name étant que foreign key, mais
>> ce que je veux maintenant c est lister les machines qui n' ont pas appelé
>
> Ca fonctionne si machine_name est primary dans "machines".
>
> Si j'ai bien compris, ton problème est que la liaison est "Machine
> hasMany Appel" . Or ceci génère 2 requêtes et donc ne permet pas de
> filtrer.  CounterCache ne t'aidera pas puisque tu veux pouvoir spécifier
> des dates pour les appels.
> La seule solution que je vois est une requête perso du genre :
>
> $this->Machine->query("Select * from machines where name not in (select
> machine_name from appels where date < .... and date > .... )");
>
> Tu peux aussi le faire en 2 fois sans ecrire de requête SQL, genre :
>
> $appels=Set::combine($this->Appel->find('all',array('conditions'=>array('Appel.date'=>
> .... ))),
>                                     '{n}.Appel.id',
>                                       array('%s','{n}.Appel.machine_name'))
> $machines =
> $this->Machine->find('all',array('conditions'=>array('NOT'=>array('Machine.name'=>$appels))));
>
>
>
>
> Mehdi
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~

Groupe "Cakephp-fr".
Adresse : cakephp-fr@googlegroups.com
Pour résilier  : cakephp-fr-unsubscr...@googlegroups.com
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à