首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅选择必须存在于两个表中的数据,并仅返回单行

仅选择必须存在于两个表中的数据,并仅返回单行
EN

Stack Overflow用户
提问于 2017-02-25 14:17:11
回答 3查看 47关注 0票数 2

我有两个表,学生表和student_subject。我想挑选其student_id出现在student_subject表上的学生,并且我只想返回一行。

餐桌学生

|student_id |名称

|1个月,一个月。

|2个月,一个月,一个月|詹姆斯

表主题

id |subject_id | student_id | subject_name

1|2数学式学习方法|1数学式学习方法|1数学式学习方法|数学

2|1%.英语|英语|1%.英语|英语|英语

3个月|3个月,孩子们,孩子们,生物学

我的代码

代码语言:javascript
复制
$this->db->select('*')
        ->from('students')
        ->where('student_id IN (select student_id from student_subject'));

我只想像这样显示单行:-

|student_id |名称

|1个月,一个月。

EN

回答 3

Stack Overflow用户

发布于 2017-02-25 14:19:19

试试这个:

代码语言:javascript
复制
select *
from students s
where exists (
        select 1
        from subjects j
        where s.student_id = j.student_id
        )
票数 2
EN

Stack Overflow用户

发布于 2017-02-25 14:21:02

您需要按如下方式使用query:

代码语言:javascript
复制
$this->db->select('students.student_id, students.name')
    ->from('students')
    ->join('subjects', 'students.id = subjects.student_id')
    ->group_by('students.id');
票数 1
EN

Stack Overflow用户

发布于 2017-02-25 14:22:31

尝试this.using加入

代码语言:javascript
复制
$this->db->select('students.student_id as sid,students.name as sname',false);
$this->db->from('students s1');
$this->db->join('subjects s2','s1.student_id = s2.student_id');
$this->db->groupby('s1.student_id');

使用别名进行访问,如

$row->sid,$row->sname

注意:- group_by()以前称为groupby(),现已删除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42452676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档