gpt4 book ai didi

mysql - mysql中如何根据另一个表统计一个表中的行数

转载 作者:可可西里 更新时间:2023-11-01 07:22:50 24 4
gpt4 key购买 nike

我在 MySQL 数据库中有两个表。第一个有部门名称列表。

departments
abbreviation | name
-------------|-------------
ACC | accounting
BUS | business
...

第二个表有一个类(class)列表,其名称包含部门的缩写。

courses
section | name
-------------|-------------
ACC-101-01 | Intro to Accounting
ACC-110-01 | More accounting
BUS-200-02 | Business etc.
...

我想编写一个查询,对于 departments 表中的每一行,给我一个 courses 表中有多少行的计数我的缩写。诸如此类:

    abbreviation | num
-------------|--------------
ACC | 2
BUS | 1
...

我可以通过查询为一个单独的部门执行此操作

SELECT COUNT(*) FROM courses WHERE section LIKE '%ACC%'
(gives me 2)

虽然我可以在 PHP 中循环并多次执行上述查询,但我宁愿在单个查询中执行。这是我正在考虑的伪代码...

SELECT department.abbreviation, num FROM
for each row in departments
SELECT COUNT(*) AS num FROM classes WHERE section LIKE CONCAT('%',departments.abbreviation,'%)

有什么想法吗?

最佳答案

SELECT d.abbreviation, COUNT(*) num
FROM departments d
INNER JOIN courses c ON c.section LIKE CONCAT(d.abbreviation, "%")
GROUP BY d.abbreviation

Sql Fiddle

关于mysql - mysql中如何根据另一个表统计一个表中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com