Zend Framework Query with Joins - PullRequest
       15

Zend Framework Query with Joins

0 голосов
/ 13 ноября 2010

Я пытаюсь повторить этот запрос, используя Zend Framework:

SELECT 
    activitytype.description, 
    activity.datecompleted

FROM
    clientactivity
INNER JOIN activity
    ON activity.activityID = clientactivity.activityid
INNER JOIN activitytype
    ON activitytype.activitytypeid = activity.activitytypeid

WHERE
    clientactivity.clientid = 100

Это то, что я имею до сих пор:

$select = $dbTable->select(Zend_Db_Table::SELECT_WITH_FROM_PART);

$select->setIntegrityCheck(false);
$select->where('clientactivity.clientid = ?', $clientID);

$select->join('activity', 'activity.activityid = clientactivity.activityid');
$select->join('activitytype', 'activitytype.activitytypeid = activity.activitytypeid');

$select->columns(array('activitytype.description', 'activity.datecompleted'));

Кажется, у меня проблемы с опцией столбцов, кажется, что она не ограничивает столбцы, и я заканчиваю с клиентская активность. * и т. д. в списке столбцов в запросе.

Что я делаю не так?

Спасибо, Martin

1 Ответ

1 голос
/ 13 ноября 2010

Попробуйте вместо $ select-> columns ();

$select->from('activitytype.description', 'activity.datecompleted');

Ссылка - http://framework.zend.com/manual/en/zend.db.select.html

UPDATE:

В этом примере мы используем универсальный обработчик базы данных:

$db = Zend_Db::factory('Pdo_Mysql', array(
            'host'     => '127.0.0.1',
            'username' => 'yourusername',
            'password' => 'somepassword',
            'dbname'   => 'yourdbname'
        ));

 $select = $db->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
 $select->from('tableName','fieldName')
         ->join('joinTable', 'joinTable.keyId = tableName.keyId',array())
         ->where('tableName.userId = ?', $userId);

 $resultSet = $db->fetchAll($select);

Ключевым элементом является пустой массив в конце операторов соединения, который не указывает записей, которые должны быть возвращены из объединенной таблицы.

...