Codeigniter SQL Join查询不返回我想要的数据

时间:2012-01-30 23:00:10

标签: php sql codeigniter

我使用CodeIgniter进行以下查询。我想要一个列表,其中包含每个组的一行,我希望该行包含liveBlogGroupRecord状态,如果它是" 1"。

现在,我只获得具有liveBlogGroupRecord=1的组的行,或者,如果我对该行进行注释,则会从同一组中获取多个组行,因为blogGroups表具有多个旧值在其中有liveBlogGroupRecord=0

$this->db->select('*');
$this->db->from('groups');
$this->db->join('blogGroups', 'groups.groupID = blogGroups.groupID', 'left');
$this->db->where('blogGroups.blogID', $blogID);
$this->db->where('blogGroups.liveBlogGroupRecord', 1);
$query = $this->db->get();

2 个答案:

答案 0 :(得分:1)

小心SELECT *。假设您的blogGroupsgroups表都有id(或其他具有相同名称的列),那么当您JOIN另一个时,只会返回第一个表

有选择地选择您需要的列。尝试这样的事情:

$this->db->select('groups.*');

/* And more selectively, whichever elements you have from `blogGroups` that you need (I have no idea what those are) */
$this->db->select('blogGroups.name');
$this->db->select('blogGroups.description');
$this->db->select('blogGroups.category');
/* etc */

答案 1 :(得分:0)

如何在$this->db->limit(1);

之前添加$query = $this->db->get();