Zend Framework присоединиться - PullRequest
0 голосов
/ 12 июля 2011

Я часами боролся с проблемой последующего объединения в Zend Framework.

Мои таблицы

  • Таблица (веб-сайты)

    • id
    • user_id
    • веб-сайт
    • url
    • ...
  • Таблица (пользователи)

    • id
    • имя пользователя
    • соль
    • пароль
    • ...
  • Таблица (отзывы)

    • id
    • website_id (идентификатор сайта)
    • user_id (идентификатор пользователя / владельца)веб-сайта)
    • reviewer_id (идентификатор пользователя, просмотревшего веб-сайт)
    • обзор
    • ...

Что я хочу получить ..
Создание массива с объединением обзора и пользовательских данных не проблема, но я также хочу добавить веб-сайт сравнения к обзору.

Я сделал следующее присоединение, но я не буду работать так, как хочу, у меня есть только 3 тестовых отзыва в моей базе данных, и я получаю более 12 результатов в моеммассив.

Мой запрос:

$ select = $ this -> _ db-> select () -> from ('reviews') -> joinLeft ('users', 'reviews.reviewer_id= users.id ') -> joinLeft (' sites ',' reviews.user_id = reviews.user_id ') -> где ("reviews.user_id = $ user_id");

$ result = $ this-> getAdapter () -> fetchAll ($ select);

С уважением,

Ники

1 Ответ

2 голосов
/ 12 июля 2011

Попробуйте добавить groupBy к вашему запросу (не проверено)

$select = $this->_db->select()->from('reviews')
                              ->joinLeft('users', 'reviews.reviewer_id = users.id')
                              ->joinLeft('websites', 'reviews.user_id = reviews.user_id')
                              ->where("reviews.user_id = $user_id")
                              ->group('reviews.id');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...