相关名称如何在内部查询中起作用?

时间:2016-06-12 08:09:06

标签: mysql sql

我有一个查询"查找2009年秋季学期和2010年春季学期所教授的所有课程"如

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吗?

1 个答案:

答案 0 :(得分:0)

是S.course_id是外部查询中的列 S.course_id = T.course_id仅选择内部和外部查询中具有课程ID的记录等于

为了找到2009年秋季学期和2010年春季学期所教授的所有课程,您的查询应该是

SELECT course_id FROM  section 
WHERE 
semester = 'Fall' AND year = '2009'
UNION 
SELECT course_id FROM  section
WHERE 
semester = 'Spring' AND year = '2010'
;

参考 http://sqlfiddle.com/#!9/449be

相关问题