显示使用子查询连接两个表的列

时间:2014-04-08 21:49:47

标签: sql

所以我似乎无法弄清楚如何使用子查询显示我正在加入的列。

SELECT INSTRUCTOR, count(case when grade = 'A' then 1 end) totalA
FROM Grade_report AS gr, Section
WHERE Section.SECTION_ID=gr.SECTION_ID
AND (gr.GRADE='A')
GROUP by INSTRUCTOR ORDER by totalA DESC

我还想选择SECTION_ID并显示它。但它说当我把它放在选择行中时,不明确的列名称为'SECTION_ID'。

非常感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

这个怎么样

SELECT INSTRUCTOR, gr.SECTION_ID, count(case when grade = 'A' then 1 end) totalA
FROM Grade_report AS gr, Section
WHERE Section.SECTION_ID=gr.SECTION_ID
AND (gr.GRADE='A')
GROUP by INSTRUCTOR, gr.SECTION_ID
ORDER by totalA DESC

由于两个表中的列名相同,因此必须指定表名(或别名)以避免歧义(这是错误试图告诉您的内容)。您还必须将新列包含在GROUP BY子句中。

答案 1 :(得分:1)

选择gr.SECTION_ID或Section.SECTION_ID;编译器不知道选择哪一个。