我有一个查询“查找 2009 年秋季学期和 2010 年 Spring 学期教授的所有类(class)”
SELECT
course_id
FROM
section S
WHERE
semester = 'Fall'
AND YEAR = 2009
AND EXISTS (
SELECT
*
FROM
section T
WHERE
semester = 'Spring'
AND YEAR = 2010
AND S.course_id = T.course_id
);
在内部查询的 where 子句的第二部分中,您可以看到 S.course_id=T.course_id
。 S.course_id
是什么?这是外部查询生成的关系的 course_id
吗?
最佳答案
是的,S.course_id 是外部查询中的列。
S.course_id=T.course_id 仅选择内查询和外查询中类(class)id均等于的记录
为了查找 2009 年秋季学期和 2010 年 Spring 学期教授的所有类(class),您的查询应该类似于
SELECT course_id FROM section
WHERE
semester = 'Fall' AND year = '2009'
UNION
SELECT course_id FROM section
WHERE
semester = 'Spring' AND year = '2010'
;
关于mysql - 相关名称在内部查询中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37772033/