【发布时间】:2012-12-03 23:24:07
【问题描述】:
我正在尝试构建一个 SQL 联合查询,它将返回两列(每个选择一列),结果来自同一字段,使用 WHERE 子句排序。
这是我正在尝试的:
SELECT scg.grade AS course_1
FROM cp_StudentCourseGrade AS scg
JOIN cp_CourseSecSem AS css ON
css.courseSecSem_id = scg.courseSecSem_id
JOIN cp_Course AS c1 ON
c1.course_id = css.course_id
UNION
SELECT scg.grade AS course_2
FROM cp_StudentCourseGrade AS scg
JOIN cp_CourseSecSem AS css ON
css.courseSecSem_id = scg.courseSecSem_id
JOIN cp_Course AS c2 ON
c2.course_id = css.course_id**
WHERE c1.course_id = c2.course_id AND c1.course_id=1 AND c2.course_id=2;
这应该返回给我类似的东西:
course_1 | course_2
-------------------
4.0 | 6.0
4.5 | 6.0
6.0 | 5.5
2.5 | 5.0
1.0 | 4.0
5.5 | 4.5
但我有一个错误说:
未知列 c1.course_id
有人知道我应该怎么做吗?
【问题讨论】:
-
如果你想要两列,你想要
JOIN而不是UNION。 -
同一行的成绩是否应该以任何方式相互关联?