gpt4 book ai didi

MySQL - 计算在另一个表中具有条目的元素(内连接)

转载 作者:行者123 更新时间:2023-11-29 21:11:29 25 4
gpt4 key购买 nike

给定以下架构 http://sqlfiddle.com/#!9/dbc328我有两张 table :

名字

id
name

地址

id
nameId
address

我需要找出 names 中有多少资源具有一定数量的地址,例如每个资源有 3 个地址。

使用以下查询:

SELECT n.id
FROM `names` n
INNER JOIN `addresses` a on a.nameId = n.id
group by n.id
having count(a.id) = 3

我可以找出这些名称,但我需要一个 count()

当尝试使用计数时,例如

SELECT count(n.id) as cnt
FROM `names` n
INNER JOIN `addresses` a on a.nameId = n.id
group by n.id
having count(a.id) = 3

不起作用,因为我正在使用 group by。我知道我可以通过使用嵌套查询来实现这一点,但我想知道是否可以使用单个查询来实现。

编辑:预期的响应应该是包含单个字段“cnt”的单行,该字段应返回每个具有 3 个地址的名称数量。

例如在这种情况下,响应应为 2,因为符合我们条件的唯一条目是 14

编辑:这是正在运行的嵌套查询

select count(n.id) as cnt
from `names` n
where n.id IN (SELECT n.id
FROM `names` n
INNER JOIN `addresses` a on a.nameId = n.id
group by n.id
having count(a.id) = 3)

我想实现同样的事情,而不必使用嵌套查询

谢谢,丹尼尔

最佳答案

SELECT COUNT(*) AS total
FROM
(SELECT a.nameId
FROM `names` n
INNER JOIN `addresses` a ON a.nameId = n.id
GROUP BY n.id
HAVING count(a.id) = 3) AS TEMP

关于MySQL - 计算在另一个表中具有条目的元素(内连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36333755/

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