Sql 使用JOIN的Codeigniter模型,当两个WHERE';两个字母组合在一起
我有两个表,第一个表是Sql 使用JOIN的Codeigniter模型,当两个WHERE';两个字母组合在一起,sql,codeigniter,model,Sql,Codeigniter,Model,我有两个表,第一个表是'data\u table',它包含所有信息,如(姓名、地址等)。第二个表是'members\u table'它包含第一个表的id,该表是某些组的成员,如组1、组2等等现在我想要实现的是:我想从'data\u table'中获取所有id,它们不是所查询的特定组的成员。我尝试的是: $this->db->select(); $this->db->from('data_table'); $this->db->join('memb
'data\u table'
,它包含所有信息,如(姓名、地址等)。第二个表是'members\u table'
它包含第一个表的id,该表是某些组的成员,如组1、组2等等现在我想要实现的是:我想从'data\u table'
中获取所有id,它们不是所查询的特定组的成员。我尝试的是:
$this->db->select();
$this->db->from('data_table');
$this->db->join('members_table', 'data_table.id = members_table.id', 'left');
$this->db->where('members_table.id', NULL);
$query = $this->db->get();
return $query->result_array();
这是我的查询,用于获取尚未在members_表中的所有名称,该表显示布尔值为TRUE的结果,但如果添加了行:
$this->db->where('members\u table.group!=','group1')代码>
我的问题是这样的:
$this->db->select();
$this->db->from('data_table');
$this->db->join('members_table', 'data_table.id = members_table.id', 'left');
$this->db->where('members_table.id', NULL);
$this->db->where('members_table.group !=', 'group1');
$query = $this->db->get();
return $query->result_array();
我得到0个结果。例如,如果我想检查哪些人还不是group1的成员,但可能已经是另一个组的成员,或者根本不是任何组的成员。如果我提出疑问:
$this->db->select();
$this->db->from('data_table');
$this->db->join('members_table', 'data_table.id = members_table.id', 'left');
$this->db->where('members_table.group !=', 'group1');
$query = $this->db->get();
return $query->result_array();
我只得到除group1之外的组成员的id的结果,但没有任何尚未成为任何组成员的id。最好的办法是什么?任何SQL行答案都可以。谢谢如果我理解正确,下面应该可以
$query = $this->db
->select("dt.*")
->from("data_table AS dt")
->join("members_table AS mt1","dt.id = mt1.id", "left")
->join("members_table AS mt2","dt.id = mt2.id","left")
->where("mt1.id",NULL)
->or_where("mt2.group !=","group1")
->get();
return $query->result_array();