0

下面的查询返回 3 个可用的结果,但它只返回一个条目 ID。

如何返回三个 entry_id?

$this->EE->db->select('entry_id, count(portfolio_number) AS results');
$this->EE->db->from('submissions');
$this->EE->db->where('type_id', '1'); 
$this->EE->db->where('member_group', $member_group); 
$this->EE->db->group_by('portfolio_number'); 
$this->EE->db->having('results = 3'); 
$query = $this->EE->db->get();
$submissions = $query->result_array();

print_r($submissions);

编辑:

我有一个表格列entry_idmember_group和。type_idportfolio_number

投资组合编号列将有一个介于 1 和 7 之间的数字。

我需要在数据库中查询具有相同投资组合编号(以及匹配类型和成员 ID)的 3 行,并为这三行中的每一行返回 entry_id。

必须有 3 个结果,否则我不想显示它们。

4

3 回答 3

0

$this->EE->db->group_by('portfolio_number');正在导致返回包含聚合数据的单行。

如果您还希望返回所有 id,您可以尝试添加

$this->EE->db->select('GROUP_CONCAT(entry_id) AS entry_ids', false);

然后entry_ids在 PHP 中拆分字段:

str_getcsv($submissions);

编辑:我为选择查询输入了第二个参数,以防止在自定义选择查询周围放置反引号。

于 2013-10-01T11:55:28.940 回答
0

你可以这样处理

$results    =   $this->EE->db
                        ->select('entry_id')
                        ->from('submissions')
                        ->where('type_id', '1')
                        ->where('member_group', $member_group)
                        ->group_by('portfolio_number')
                        ->get()
                        ->result_array();

if(count($results)){
    return $results
}else {
    return false;
}
于 2013-10-02T05:38:44.303 回答
0

能否请您替换此代码

$this->EE->db->group_by('portfolio_number'); //每个portfolio_number只返回一行
$this->EE->db->group_by('portfolio_number,entry_id'); // 每个portfolio_number 和entry_id 返回一行

我认为它将返回 3 行不同的 entry_id

于 2013-10-28T09:36:52.900 回答