Попробуйте выполнить запрос с помощью соединения с 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')
);
До присоединения.