gpt4 book ai didi

MYSQL统计相关记录一条查询

转载 作者:IT老高 更新时间:2023-10-29 00:10:39 26 4
gpt4 key购买 nike

所以我有一个 mysql 查询,查询一个表“联系人”,每个联系人都有购买。购买在相关表中。我想像这样在右侧显示每个联系人姓名及其购买次数:

Adam(1)
Mike(8)
Steve(3)

我当前的 sql 是这样的:

SELECT * FROM contacts ORDER BY contacts.name ASC"

我当前的表格如下所示:

Adam
Mike
Steve

为了将相关(购买)表的计数拉入当前表,我知道我必须以某种方式加入“购买”表,然后使用 GROUP BY 和 count() 函数,但我不确定如何构造这条sql语句。有人能帮我吗。

同样,我想做的就是列出一个表(联系人)并计算它的相关记录(购买)并让它看起来像这样:

Adam(1)
Mike(8)
Steve(3)

非常感谢您的帮助。

最佳答案

假设 purchases 表有一个名为 contact_idcontacts 表的外键,这样的查询应该可以工作:

SELECT c.name, count(p.contact_id)
FROM contacts AS c
LEFT OUTER JOIN purchases AS p
ON p.contact_id = c.contact_id
GROUP BY c.contact_id
ORDER BY c.name ASC

此查询会将计数放在单独的列中,我建议这样做。如果您必须按照名称后括号中指示的方式对其进行格式化,您可以使用 MySQL 的 concat()功能。像这样的:

SELECT concat(c.name, '(', count(p.contact_id), ')') AS Name_And_Count_Together
FROM contacts AS c
LEFT OUTER JOIN purchases AS p
ON p.contact_id = c.contact_id
GROUP BY c.contact_id
ORDER BY c.name ASC

关于MYSQL统计相关记录一条查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8409793/

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