首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回0行,为什么?

问返回0行,为什么?
EN

Stack Overflow用户
提问于 2021-05-06 00:18:22
回答 2查看 569关注 0票数 0

有人能帮我理解为什么我要返回0行吗?以下是我的查询:

代码语言:javascript
复制
SELECT s.firstname, s.lastname, s.studentprogram
 FROM student s
  WHERE s.studentprogram =
  (SELECT p.ProfessorProgram 
     FROM professor p 
       WHERE p.ProfessorProgram LIKE 'C_');

问题是:创建一个查询/子查询来显示学生的名字、姓氏和程序。程序必须与教授表中的程序相同,而教授的程序必须以‘C’开头。此查询将使用子查询而不是联接。

表:学生

栏目:学生姓名,学生计划,电话,年龄,名字,姓氏

表:教授

专栏: ProfessorId,ProfessorProgram,PhoneNo,Age,ProfessorName

EN

回答 2

Stack Overflow用户

发布于 2021-05-06 00:22:20

这句话:

代码语言:javascript
复制
WHERE p.ProfessorProgram LIKE 'C_'

检查ProfessorProgram是否以'C'开头,并且它有两个字符。

这个问题可能是为了:

代码语言:javascript
复制
WHERE p.ProfessorProgram LIKE 'C%'

我不知道这是不是问题真正想要的。因为你可以检查学生的课程。而“程序代码”似乎是连接两个表的一种奇怪的方式。但是,如果这是唯一的两个表,那么这是唯一的选择。

票数 0
EN

Stack Overflow用户

发布于 2021-05-06 12:18:32

我认为您正在寻找这样的查询:

代码语言:javascript
复制
SELECT s.firstname, s.lastname, s.studentprogram
 FROM student s
  WHERE s.studentprogram IN
  (SELECT p.ProfessorProgram 
     FROM professor p 
       WHERE p.ProfessorProgram LIKE 'C%');

正如我看到您对Gordan的第一个答复的评论,如果=导致错误,那么使用IN不应该返回0行。如果这种情况仍在发生,您介意共享表中的数据吗?只有当以ProfessorProgram开头的C没有与其有关联的学生时,才可能发生这种情况。

希望我们能阐明我们的观点,并使你的问题正确。

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

https://stackoverflow.com/questions/67410332

复制
相关文章

相似问题

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