Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour ,
mon problème est le suivant je voudrais faire la requête suivante :
SELECt programme.modeComtageNuisiblePourcentage from programme,visitedeterrain,comptagedenuisible
WHERE programme.idprogramme=visitedeterrain.idprogramme
AND visitedeterrain.idVisiteDeTerrain= comptagedenuisible.idVisiteDeTerrain
AND idcomptageDeNuisible = 1
mon code est donc le suivant :
$Tprogramme=new Programme();
$select=$Tprogramme->select();
$select->setIntegrityCheck(false);
$select->where('idcomptageDeNuisible = ?',1)
->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme')
->join('comptagedenuisible','comptagedenuisible.idVisiteDeTerrain=visitedeterrain.idVisiteDeTerrain');
mais le code généré est le suivant
SELECT `visitedeterrain`.*, `comptagedenuisible`.* FROM `visitedeterrain` INNER JOIN `comptagedenuisible` ON comptagedenuisible.idVisiteDeTerrain=visitedeterrain.idVisiteDeTerrain WHERE (comptagedenuisible = 1)
en fait le 2 eme join n'est pas pris en compte.
Merci
Dernière modification par yoga20 (24-06-2009 15:29:54)
Hors ligne
Hello,
Le from() n'est pas automatique :
$Tprogramme=new Programme(); $select=$Tprogramme->select(); $select->setIntegrityCheck(false); $select->from($Tprogramme); // ou $select->from('programme'); $select->where('idcomptageDeNuisible = ?',1) ->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme') ->join('comptagedenuisible','comptagedenuisible.idVisiteDeTerrain=visitedeterrain.idVisiteDeTerrain');
A+
Hors ligne
Salut,
Petite précision. Si tu ne veux pas que tous les champs de tes tables jointes soient récupérés (*), tu peux passer un tableau avec les champs voulu, ou null pour n'en récupérer aucun.
->from($Tprogramme, array('champ1', 'champ2'))
->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme') // Tous les champs (visitedeterrain.*) ->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme', null) // Aucun champ ->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme', array('alias1' => 'champ1', 'alias2' => 'champ2')) // champ1 as alias1, champ2 as alias2
A+ benjamin.
Hors ligne
Merci pour vos réponses aussi rapides . Cela fonctionne avec l'ajout du ->from()
Hors ligne