我已经为 Zend Framework 中的 follow join 问题苦苦挣扎了几个小时。
我的 table
表格(网站)
- ID
- 用户 ID
- 网站
- 网址
- ...
表(用户)
- ID
- 用户名
- 盐
- 密码
- ...
表格(评论)
- ID
- website_id(网站 ID)
- user_id(网站用户/所有者的 ID)
- reviewer_id(评论过网站的用户的 ID)
- 评论
- ...
我想要得到什么..
创建一个包含评论和用户数据的数组是没有问题的,但我也想要
添加网站与评论进行比较。
我进行了以下连接,但我不会像我想要的那样工作,我的数据库中只有 3 个测试评论,而我的数组中得到了超过 12 个结果。
我的查询:
$select = $this->_db->select() ->来自('评论') ->joinLeft('用户', 'reviews.reviewer_id = users.id') ->joinLeft('网站', 'reviews.user_id = Reviews.user_id') ->where("reviews.user_id = $user_id");
$result = $this->getAdapter()->fetchAll($select);
谨致问候,
尼基
最佳答案
尝试将 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');
关于php - Zend框架加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6663751/