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

我有两个表:</ p>

1)用户

2)Trustmembers </ p>

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

在sql中,我可以编写像</ p>

 这样的查询,从Id IN用户中选择名称(从Trustmembers中选择userId);

</ code> </ pre>

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

或者任何 除了使用Where_in ?? </ p>
</ div>之外的其他方式

展开原文

原文

I have two tables:

1) Users
2) Trustmembers

I want to take all userId's from Trustmembers and compare with Id of Users table and then i want to print all the names from Users table of matching id's.

In sql I can write the query like

select name from users where Id IN(select userId from Trustmembers); 

How to write the same query in Model(MVC) of php codeigniter to get the same result?

Or any other way except using Where_in??

dongliao8069
dongliao8069 reffer这个链接:stackoverflow.com/questions/35405635/...
3 年多之前 回复

1个回答

You can do like this,

METHOD 1:

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

NULL, false will be used to not escape the query as by default.

METHOD 2

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

METHOD 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();

I hope this will help.

dongyong5255
dongyong5255 我说我有一列作为userId,但它可以有多个正确的值,在这个意义上我必须采取所有这些值并逐个比较每个Id并获取匹配的结果
3 年多之前 回复
doudi4014
doudi4014 这个查询来自哪里,你的问题是不同的,你在这里发布不同的代码。 您的评论只指定了一个用户ID,这就是您获得的一条记录,但这与您提出的问题无关
3 年多之前 回复
dsutuyxe088689
dsutuyxe088689 在我编写查询之前,例如“$ q = $ this-> db-> select('users.name') - > join('trustmembers','users.id = trustmembers.userId') - > where(['users。 id'=> $ id]) - > get('users'); return($ q-> num_rows()> 0)?$ q-> result_array():array();“但它只有一个 值
3 年多之前 回复
dou448172583
dou448172583 是的,因为正如我所说的,你需要包含那个库子查询才能使它工作,但是是的,你可以尝试前两个,你能告诉我你在它们中遇到了什么错误吗?
3 年多之前 回复
doutao8774
doutao8774 我通过说“在null上调用成员函数start_subquery()”来获取错误
3 年多之前 回复
douti0467
douti0467 你有什么错误,我相信你没有尝试过最后一个,我需要你的库包含在你的
3 年多之前 回复
duanqun9740
duanqun9740 我尝试了所有这三种方法但没有得到所需的结果
3 年多之前 回复
drhzc64482
drhzc64482 :我认为以上三种方式就够了,可能还有更多!
3 年多之前 回复
douzhuo3233
douzhuo3233 Codeigniter提供where_in(),where_not_in()等我们也可以使用这些函数。
3 年多之前 回复
douhuang5623
douhuang5623 codeigniter有this-> db-> where_in()codeigniter.com/user_guide/database / ...
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐