2010-12-19 4 views
1

J'essaie de rejoindre 2 tables (ce sera 4 à la fin) mais chaque tentative que je prends le résultat sont toutes les lignes de la première table.Rejoignez dans Zend Framework

C'est mon code

$select = $this->select() 
        ->from('table1') 
        ->join('table2', 'table1.table2_id = table2.table2_id', array('table2.table2_value2')) 
        ->setIntegrityCheck(FALSE); 

Donc cette requête me donnera toutes les lignes de table1.But je besoin de quelques lignes de aswell table2. Qu'est-ce que je fais de mal?

Je suis seulement dans une phase de test donc ne me dérange pas les noms de tables. Je tends modèle avec Zend_Db_Table_Abstract

Merci

Répondre

1

Le 3ème argument dans l'instruction JOIN est un tableau listant les colonnes que vous voulez à partir de la 2ème table. Essayex comme les instructions qu'il défaut à tous coulmns: méthode

Le troisième argument de join() est un tableau de noms de colonnes, comme celui utilisé dans le de(). Il est par défaut "*", prend en charge les noms de corrélation, expressions et Zend_Db_Expr dans de la même manière que le tableau de noms de colonnes dans la méthode from().

Pour ne sélectionner aucune colonne dans une table, utilisez un tableau vide pour la liste des colonnes . Cette utilisation fonctionne également dans la méthode from(), mais généralement vous voulez certaines colonnes de la table principale dans vos requêtes, tandis que ne peut pas vouloir de colonnes d'une table joint.

Si vous n'êtes toujours pas trouvé tous les éléments de la 2ème table, êtes-vous sûr que vous avez les éléments de la 2e table qui correspondent, une si table a l'identifiant d'une ligne dans le tableau 2, et les coulmns dans le tableau d'une table et deux sont 'table2_id'

tableau une structure par exemple:

table1_id | user | pass | table2_id | timestamp

Tableau Deux Structure:

table2_id | name | number | department