子查询 - 我不明白它们

问题描述 投票:0回答:1

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

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

选择不同的

ID
name
来自
student
WHERE dept_name >= 'comp.sci.'

错了

选择不同的

ID
,名称,部门名称 来自
student
WHERE dept_name > SOME IN (SELECT ID, name, dept_name FROM Student WHERE dept_name = 'comp.sci.')

错了

选择不同的 S.

ID
S.
name
来自学生 JOIN 在 T.ID= S.ID 上取 T WHERE dept_name IN (SELECT ID, name FROM gets WHERE dept_name = 'comp.sci.')

错了

sql nested subquery
1个回答
0
投票

一点一点地构建它。

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.%');
© www.soinside.com 2019 - 2024. All rights reserved.