gpt4 book ai didi

MySQL统计外键有给定值的次数

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

我有一张包含州的表格和一张包含给定州下的日期的表格

s_state
---------
#id name
1 State 1
2 State 2

d_date
--------
#date #user state
2017-01-01 1 1
2017-01-02 1 1
2017-01-03 2 1

对于给定的用户,我试图获取他访问每个州的次数(多少天)。如果使用状态,我当前的查询将有效,但我的问题是,对于未使用的状态,它不会返回“count 0”。 (对于用户 1,它仅返回“状态 1 使用了 2 次”,但我希望它返回“状态 1 计数 = 2,状态 2 计数 = 0”)

这是我当前的查询:

SELECT s_state.id, COUNT(date)
FROM s_state
LEFT JOIN d_date ON s_state.id = d_date.state
WHERE d_date.user = 1
GROUP BY s_state.id

最佳答案

试试这个

SELECT 
s_state.id AS 'State Id',
IFNULL(COUNT(date), 0) AS 'Count'
FROM s_state
LEFT JOIN d_date ON s_state.id = d_date.state AND user = 1
GROUP BY
s_state.id,
user

如果在WHERE子句中使用user,它将过滤那些不存在的用户。 JOIN 将显示 NULLs,然后您可以将其转换为 0

关于MySQL统计外键有给定值的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46780783/

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