如何在php codeigniter中一起使用`where`和`in`子句?

时间:2017-03-11 08:23:23

标签: php mysql codeigniter

我有两张桌子:

1)用户
 2)Trustmembers

我想从Trustmembers获取所有userId并与Id of Users表进行比较,然后我想打印来自匹配id的Users表的所有名称。

在sql中我可以编写像

这样的查询
select name from users where Id IN(select userId from Trustmembers); 

如何在php codeigniter的Model(MVC)中编写相同的查询以获得相同的结果?

除了使用Where_in ??

之外的任何其他方式

1 个答案:

答案 0 :(得分:0)

你可以这样做,

方法1:

$this->db->select('name')->from('users');
$this->db->where('Id IN (SELECT userId FROM `Trustmembers`)', NULL, FALSE);
$result = $this->db->get();
默认情况下,

NULL, false将用于不转义查询。

方法2

$this->db->select('name')->from('users');
$this->db->where_in('Id', 'SELECT userId FROM `Trustmembers`');
$result = $this->db->get();

方法3 subquery library

$this->db->select('name')->from('users');
$subquery = $this->subquery->start_subquery('where_in');
$subquery->select('userId')->from('Trustmembers');
$this->subquery->end_subquery('Id', FALSE);
$result = $this->db->get();

我希望这会有所帮助。