Zf2 PAS DANS l'expression dans la clause where
J'essaie d'obtenir des résultats à partir d'une table qui n'est pas déjà présent sur un autre tableau.
Pour cela, je suis en utilisant une sous-requête et un PAS DANS expression dans la clause where. La normale sql qui fonctionne ressemble:
SELECT `products`.* FROM `products` WHERE `products`.`pro_id` **NOT IN** (
SELECT `product_collection`.`pro_id` AS `pro_id` FROM `product_collection` WHERE `coll_id` = '6' ) AND products.pro_id IN (55,56,57,62)
Je suis à l'aide de zf2 pour le projet. Le problème est que je ne sais pas comment utiliser PAS DANS expression à l'intérieur de la clause where. Nous pouvons utiliser où-> () pour l'expression dans la clause where. pour eg.
//$productIds is an array
//$collectionId is an id
$subSelect = $this->getRawSql()->select('product_collection');
$subSelect -> columns(array('pro_id'));
$subSelect -> where(array('coll_id'=>$collectionId));
$select = $this->getRawSql()->select('products');
$select -> **where->in**('products.pro_id', $subSelect)
-> where->in('products.pro_id',$productIds);
mais je n'ai aucune idée de comment l'utiliser PAS DANS l'expression.
OriginalL'auteur Laxman | 2013-09-07
Vous devez vous connecter pour publier un commentaire.
Utilisation notIn() comme vous le faites avec En().
Voir : http://framework.zend.com/apidoc/2.1/classes/Zend.Db.Sql.Predicate.NotIn.html
Edit :
Ou de l'utiliser à la place
Fatal error: Call to undefined method Zend\Db\Sql\Where::notIn()
Et je suis en utilisant zf 2.1.4.J'ai mis à jour mon post.
OriginalL'auteur Fouad Fodail