选择在表格之间计数

时间:2018-06-22 03:39:27

标签: mysql sql

我是SQL的新手,在使用SELECT时有些失落。我有两个表:table1有两列,分别带有名称和唯一的整数标识符(例如998,“ Dave”); table2有一个相关的列,该列重复相同的标识符(998的多个实例)。

我想运行查询以遍历表1中的每一行,并对表2中的该唯一整数的每个实例进行计数/ SELECT(例如,如果存在3个Dave 998号的实例,我希望SELECT输出column1:'Dave ',第2列:3)这等效于简单的CountIf的其他地方,这可能是我的问题的一部分-我陷入了Python的困境,但仍在努力调整。

2 个答案:

答案 0 :(得分:2)

一个简单的联接/计数查询应该在这里工作:

SELECT
    t1.name,
    t1.id,
    COUNT(t2.id) AS cnt
FROM table1 t1
LEFT JOIN table2 t2
    ON t1.id = t2.id
GROUP BY
    t1.name,
    t1.id;

请注意,我们在这里保留了连接并计数table2.id,因为在第一个表中的id不匹配的情况下,它将正确报告计数为零。

答案 1 :(得分:2)

您将需要两个基本但功能强大的SQL概念才能获得所需的结果。不管什么数据库引擎和什么版本,所有关系数据库都固有地支持afaik):JOINAggregationcountgroup by)。

select t1.name, count(t2.id)
from table1 t1
join table2 t2
on t1.id = t2.id
group by t1.name;