попробуйте выполнить запрос с помощью соединения с Zend (SE) - PullRequest
0 голосов
/ 15 августа 2011

У меня есть 4 таблицы в моей БД; продавцы, метод оплаты, расходы и тип транзакции.

Все они имеют идентификатор и заголовок, кроме тратить (тратить есть внешние ключи других и другие поля, такие как user_id, comment, ...).

Я пытаюсь получить всю информацию всех таблиц для уникального идентификатора пользователя!

для выполнения, я попробовал небольшой тест, который не запускается:

public function getSpendingsForUser( $userid )
{
    $mercTable = Engine_Api::_()->getDbTable('merchants', 'spendings');
    $mercName = $mercTable->info('name');   

    $table = Engine_Api::_()->getDbTable('spendings', 'spendings');
    $spendName = $table->info('name');

    $select = $table->fetchAll(
        $table->select()
        ->joinLeft($mercName, "$mercName.merchant_id = $spendName.merchant_id", NULL)
        ->where('user_id = ?', $userid)
        ->group('spending_id')
        );
    return $select;

}

В файле просмотра:

foreach($this->spendings as $s) {
        var_dump($s->comment);
}

Как правильно сделать объединение, чтобы получить всю информацию из user_id ???

Большое спасибо !!!

1 Ответ

1 голос
/ 15 августа 2011

Вы должны определить, не работает, чтобы помочь нам помочь вам. Но я могу сказать вам, что вам, вероятно, нужно ->setIntegrityCheck(false);

$select = $table->fetchAll(
        $table->select()
        ->setIntegrityCheck(false);
        ->joinLeft($mercName, "$mercName.merchant_id = $spendName.merchant_id", NULL)
        ->where('user_id = ?', $userid)
        ->group('spending_id')
        );

Перед объединением.

...