Codeigniter试图显示多对多匹配以外的结果

时间:2015-10-22 19:33:26

标签: php mysql codeigniter many-to-many

我正在尝试查询多对多数据库,我想要显示与项目关联的的用户。

我有3个表,一个用户表,一个项目表和一个project_user_link表,用于将匹配的user_id与project_id放在一起。

$tquery = $this->db->select('*')
->from('pm_project')
->where_not_in('pm_project_user_link.project_id',$project_id)
->join('pm_project_user_link', 'pm_project.id = pm_project_user_link.project_id', 'left outer')
->join('pm_users', 'pm_project_user_link.user_id = pm_users.id', 'right outer')
->get();

但是,我只获得已经与其他项目关联的用户的结果(已经在链接表中的用户)。并非所有用户都已经拥有与之相关的项目。我希望所有用户都能出现。

当我注释掉where_not_in行时,我得到了所有用户的结果。我已经尝试了所有可以找到的连接组合。当涉及到mysql时,我仍然是noobish。我不确定是否需要进行任何进一步的连接,或者我是否完全采用了错误的方式。

我的google-fu在尝试寻找解决方案时失败了。我很肯定这已经得到了回答,但对于我的生活,我无法弄清楚如何描述这个或者这个叫什么。

如果有什么不清楚,请告诉我。

提前感谢您提供任何资源和帮助。

Edit1:我想我应该提一下,我问这个的唯一原因是因为我假设 mysql可以非常干净,聪明的方式完成这个。与此同时,我只是从两个查询中淘汰用户列表中的用户并在php中使用数组。

0 个答案:

没有答案