Попробуйте выполнить запрос с помощью соединения с Zend (SE)

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

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

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

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

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 ответ

Решение

Вы должны определить, не работает, чтобы помочь нам помочь вам. Но я могу сказать вам, что вам, вероятно, нужно ->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')
        );

До присоединения.

Другие вопросы по тегам