mysql - SQL 使用子查询而不是一对多的连接

标签 mysql sql select join db2

我正在尝试创建一个选择,该选择允许我将两个表连接在一起,而无需使用任何使用 JOIN 的操作。问题是这两个表包含一对多关系。

假设有两个表:Department 和 Course。

部门
D_代码 |学校
01             | 1111
02             | 1111
03             | 2222

类(class)
CRS_代码 | D_代码
数学1           | 01
数学2           | 02
ACCT1           | 03

如何在不使用任何类型的联接的情况下找到所有学校及其提供的类(class)总数?
结果是1111学校有2门类(class),2222学校有1门类(class)。
我尝试过使用WITH和多个子查询,但结果值总是重复的。所以它会说学校 1111 有 16 门类(class),学校 2222 有 16 门类(class)(作为示例)。


指导将不胜感激。谢谢!

最佳答案

试试这个。如果不在 Where 条件 中使用子查询,您也会得到相同的结果。

SELECT Count(D_CODE) No_OF_Course,
       SCHOOL
FROM   Department
WHERE  D_CODE IN(SELECT D_CODE
                 FROM   course)
GROUP  BY SCHOOL 

关于mysql - SQL 使用子查询而不是一对多的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27007413/

相关文章:

Mysql 像描述的那样对我的表中的数据进行排序

Python MySQL DB executemany 不适用于一个值

mysql - 在 On 语句中使用 If 语句

sql - 按没有特定值的列分组

mysql - 查找带有类似内容的文本

mysql - 如何解决 django.db.utils.IntegrityError : (1364, "Field ' name' doesn't have a default value")

java - 在生成的 jOOQ 记录中包含 rowid

mysql - SQL查询SP从11个表获取数据并避免笛卡尔输出

php - 如何使用 mysql 搜索子级别类别?

Javascript 焦点和选择在 FF 中不起作用