Nicky
Nicky

Reputation: 153

Zend Framework join

I've been struggle for hours with the follow join issue in Zend Framework.

My table(s)

What do I want to get..
To make a array with join of the review and user data is no problem, but I want also add the website compare to the review.

I made the follow join but I won't work like I want, I have just 3 test reviews in my database and I'm getting over 12 results in my array.

My query:

$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");

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

With kind regards,

Nicky

Upvotes: 0

Views: 773

Answers (1)

fin1te
fin1te

Reputation: 4351

Try adding a groupBy to your query (untested)

$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');

Upvotes: 2

Related Questions