子查询 - 我没有得到它们

Sub queries - I do not get them

提问人:Anonymous 提问时间:9/27/2023 更新时间:9/27/2023 访问量:54

问:

虽然我理解子查询的基本定义,但我很难应用它。下面列出了我获得 A 但没有运气的一些尝试。我做错了什么?

A. 查找至少参加过一门 Comp. Sci. 课程的每个学生的 ID 和姓名;确保结果中没有重复的名称

选择 DISTINCT ,其中 dept_name >= 'comp.sci.'IDnamestudent

选择“非重复”、“名称”dept_name FROM WHERE dept_name > SOME IN (SELECT ID, name, dept_name FROM student WHERE dept_name = 'comp.sci.')IDstudent

SELECT DISTINCT S. S. FROM 学生 JOIN 在 T.ID= S.ID 上采用 T WHERE dept_name IN(选择 ID,名称 FROM 采用 WHERE dept_name = 'comp.sci.')IDname

SQL 嵌套 子查询

评论


答:

0赞 user8319876 9/27/2023 #1

一点一点地建立起来。

create table students (id numeric, name text, dept_name text);
 insert into students values 
  (1, 'alice', 'comp.sci.java'), 
  (2, 'bob', 'comp.sci.php'), 
  (3, 'eve', 'metaphysics');

您可以自行运行子查询:

SELECT dept_name FROM student WHERE dept_name like 'comp.sci.%';

然后尝试在一个简单的子选择中使用它:

SELECT dept_name FROM 
(SELECT dept_name FROM student WHERE dept_name like 'comp.sci.%');

并扩展到您的目标:

SELECT DISTINCT ID, name, dept_name 
FROM student 
WHERE dept_name IN 
  (SELECT dept_name FROM student WHERE dept_name like 'comp.sci.%');

评论

0赞 Anonymous 9/27/2023
哦,我的天哪,这太有帮助了!我总是忘记 LIKE 运算符。非常感谢您的解释 - 我非常感谢!