开发者

Zend Framework join

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

My table(s)

  • Table (websites)

    • id
    • user_id
    • website
    • url
    • ...
  • Table (users)

    • id
    • username
    • salt
    • password
    • ...
  • Table (reviews)

    • id
    • website_id (id of website)
    • user_id (id from the user/owner of the website)
    • reviewer_id (id from the user who has reviewed the website)
    • review
    • ...

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 rev开发者_如何学Goiews 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


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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜