首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询2表

SQL查询2表
EN

Stack Overflow用户
提问于 2013-09-23 10:49:07
回答 2查看 117关注 0票数 0

我有两张桌子:老师和班级。下面是描述:

代码语言:javascript
复制
TEACHER
 ----------------
 TEACHER_ID
 FIRST_NAME
 LAST_NAME
 TYPE_CODE
 HOME_ROOM_NUM
 PHONE_NUM
 START_DATE
 HOME_STATE
 SCHOOL_ID

 Class
 --------------------
 CLASS_ID
 CLASS_NAME
 TEACHER_ID
 MAX_SEATS_AVAILABLE

我想知道如何计算一位老师的授课班数。这是我尝试过的: 1.丽莎·琼斯教了多少课,如果有的话?

代码语言:javascript
复制
SQL> select teacher.last_name, teacher.first_name, class.class_name as 
  2  from teacher, class
  3  where teacher.teacher_id = '2'
  4  AND class.teacher_id = '2';

下面是我得到的结果:

代码语言:javascript
复制
LAST_NAME         FIRST_NAME        CLASS_ID CLASS_NAME           TEACHER_ID  MAX_SEATS_AVAILABLE

----------------- ----------------- -------- -------------------- ----------- --------------------
JONES             LISA               2       Basic CALCULUS       2           10
JONES             LISA               9       Physics 230          2           20

我只需要老师的名字,Id和班级的数量,没有任何幸运与计数函数。

EN

回答 2

Stack Overflow用户

发布于 2013-09-23 10:58:25

我建议取消不推荐使用的隐式连接,代之以标准的显式连接:只需要一个GROUP BY就可以让COUNT()正常工作。

代码语言:javascript
复制
SELECT t.last_name, t.first_name, t.Teacher_ID, COUNT(DISTINCT CLASS_ID) as Classes_Count 
FROM teacher t
JOIN class c
  ON t.Teacher_ID = c.Teacher_ID
WHERE t.Teacher_ID = '2'
GROUP BY t.last_name, t.first_name, t.Teacher_ID

您可能希望或不希望在计数中使用DISTINCT,这取决于数据的性质。

票数 4
EN

Stack Overflow用户

发布于 2013-09-23 16:00:34

我认为@GOAT解决方案是正确的。这个squery在没有JOIN语句的情况下工作:

代码语言:javascript
复制
select t.last_name, t.first_name, c.class_name, COUNT(DISTINCT c.CLASS_ID) as Classes_Count from teacher t, class c where t.teacher_id = c.teacher_id and t.teacher_id = 1 GROUP BY t.LAST_NAME, t.FIRST_NAME, t.TEACHER_ID;

编辑:现在我为教师表和班级表添加别名,并在脚本中添加组语句。你能试试吗?我只在菲德尔上测试过。

这是SQL FIDDLE link.

EDIT2:同时,我查看了ORA-00937: not a single-group group function,找到了this和这个topic。但是这个脚本不会得到这个异常。如果您修改了语句,请分享它!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18951095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档