Mysql 1242:子查询返回多行
我有一个关于mysql的问题 我几乎没有课程表、论文表、学生表和学生表 现在我想要的是,我的查询应该返回如下结果: 它应该从学生表中选择学生姓名,学生类别,学生自选论文,但我没有在我的学生论文表中提到任何东西,而是在论文表中提到 论文表以id作为主键,我在studentspaper中使用了id作为外键 现在,我使用的简单查询是:Mysql 1242:子查询返回多行,mysql,sql,phpmyadmin,mysql-error-1242,Mysql,Sql,Phpmyadmin,Mysql Error 1242,我有一个关于mysql的问题 我几乎没有课程表、论文表、学生表和学生表 现在我想要的是,我的查询应该返回如下结果: 它应该从学生表中选择学生姓名,学生类别,学生自选论文,但我没有在我的学生论文表中提到任何东西,而是在论文表中提到 论文表以id作为主键,我在studentspaper中使用了id作为外键 现在,我使用的简单查询是: select st.name, s.paperid from students st, sps s join papers on paperid w
select
st.name,
s.paperid
from
students st,
sps s join papers
on paperid
where
paperid = (select p.p_id from papers p where type='optional')
and st.course=1
我不知道该怎么办
它说子查询返回超过1行1242在这种情况下,您必须将SQL更改为:
select st.name, s.paperid
from students st, sps s join papers on paperid
where paperid in (select p.p_id from papers p where type='optional') and st.course=1
我刚把=改成in
这应该可以解决您的问题。在这种情况下,您必须将SQL更改为:
select st.name, s.paperid
from students st, sps s join papers on paperid
where paperid in (select p.p_id from papers p where type='optional') and st.course=1
我刚把=改成in
这将解决您的问题。您的查询是:
select st.name, s.paperid
from students st,
sps s join
papers
on paperid
where paperid= (select p.p_id from papers p where type='optional') and st.course=1
它缺少学生和SP之间的连接。我想你的意思是:
select st.name, s.paperid
from students st join
sps s
on st.studentid = sps.studentid join
papers p
on p.paperid = sps.paperid
where p.type='optional' and st.course=1
但是,如果看不到表的结构,很难说这是不是正确的查询。您的查询是:
select st.name, s.paperid
from students st,
sps s join
papers
on paperid
where paperid= (select p.p_id from papers p where type='optional') and st.course=1
它缺少学生和SP之间的连接。我想你的意思是:
select st.name, s.paperid
from students st join
sps s
on st.studentid = sps.studentid join
papers p
on p.paperid = sps.paperid
where p.type='optional' and st.course=1
但是,如果看不到表的结构,很难说这是不是正确的查询。这个链接应该在这里:这个答案是正确的。如果这个答案对你有帮助,请接受它。我想我的问题不合适。我想要的是,从studentpaper表中,它应该取出那些id等于type=optional的paper表id的纸张。@iperfect OK,尝试使用not in代替in。这样,您将排除所有类型为可选的paperid。此链接应位于此处:此答案正确。如果这个答案对你有帮助,请接受它。我想我的问题不合适。我想要的是,从studentpaper表中,它应该取出那些id等于type=optional的paper表id的纸张。@iperfect OK,尝试使用not in代替in。这样,您将排除所有类型为可选的paperid。非常感谢。说真的,你让我高兴极了。非常感谢你。说真的,你让我很开心。