从具有相同值的列和具有不同值的另一列的多个行中进行选择

时间:2017-07-19 08:37:28

标签: php mysql codeigniter codeigniter-3

我正在使用codeigniter,我想从一个包含两列lab_id和service_id

的表中选择数据
lab_id        service_id
  1              1
  1              2
  3              1

我只想选择lab_id" 1"其中包含1和2作为服务ID。 目前我正在使用以下代码,但没有工作。

<pre>    
    $this->db->select('lab_id');
    $this->db->from('labs_services_mapping');
    foreach ($data as $value) {
        $this->db->where('service_id',$value['id']);
    }
    $this->db->group_by('lab_id');
    $query = $this->db->get()->result();
</pre>

$ data是一个包含service_id

的数组

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题

$this->db->select('lab_id');
$this->db->from('labs_services_mapping');
foreach ($data as $value) {
    $this->db->or_where('service_id',$value['id']);
}
$this->db->group_by('lab_id');
$query = $this->db->get()->result();

您也可以尝试使用where_in

$this->db->select('lab_id');
$this->db->from('labs_services_mapping');
$this->db->where_in("service_id", $data);
$this->db->group_by('lab_id');
$query = $this->db->get()->result();

由于你想要一个静态的结果,你应该这样做

$this->db->select('lab_id');
$this->db->from('labs_services_mapping');
$this->db->where_in("service_id", [1,2]);
$this->db->group_by('lab_id');
$query = $this->db->get()->result();