提问人:Anonymous 提问时间:9/27/2023 更新时间:9/27/2023 访问量:54
子查询 - 我没有得到它们
Sub queries - I do not get them
问:
虽然我理解子查询的基本定义,但我很难应用它。下面列出了我获得 A 但没有运气的一些尝试。我做错了什么?
A. 查找至少参加过一门 Comp. Sci. 课程的每个学生的 ID 和姓名;确保结果中没有重复的名称
选择 DISTINCT ,其中 dept_name >= 'comp.sci.'ID
name
student
错
选择“非重复”、“名称”dept_name
FROM WHERE dept_name > SOME IN (SELECT ID, name, dept_name FROM student WHERE dept_name = 'comp.sci.')ID
student
错
SELECT DISTINCT S. S. FROM 学生
JOIN 在 T.ID= S.ID 上采用 T
WHERE dept_name IN(选择 ID,名称 FROM 采用 WHERE dept_name = 'comp.sci.')ID
name
错
答:
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 运算符。非常感谢您的解释 - 我非常感谢!
评论