PHP/SQL 查询:组合两个只有唯一记录的表并计算星期六

Posted

技术标签:

【中文标题】PHP/SQL 查询:组合两个只有唯一记录的表并计算星期六【英文标题】:PHP/SQL Query: combine two tables with only unique records and count saturdays 【发布时间】:2021-10-22 13:16:17 【问题描述】:

我有两个 mysql 表,分别称为“accounts”和“events”。

帐户

ID name
1 Pete
2 Josh
3 Harry

活动

ID date account_id
1 2021-10-11 1
2 2021-10-23 1
3 2021-10-23 2
4 2021-11-06 1

events 表中的 account_id 链接到 accounts 表中的 id。

我的问题是:我可以使用哪个查询仅计算帐户表中每个唯一用户的星期六(日期 YYYY-mm-dd 格式)?所以我得到了下一个结果:

Name Saturdays
Josh 1
Pete 2
Harry 0

我尝试了很多查询(即(内部)JOIN、DISTINCT 和 GROUP BY 关键字),但我没有得到确切的结果。你能帮帮我吗?

非常感谢!

【问题讨论】:

你在哪里找到哈利的?!? 灌木丛中的某个地方 【参考方案1】:

我认为这样的事情应该可以工作(未经测试):

SELECT 
    `a`.`name` AS `Name`,
    COUNT(`e`.`ID`) AS `Saturdays`
FROM `accounts` AS `a`
LEFT JOIN `events` AS `e` ON `e`.`account_id` = `a`.`ID` AND WEEKDAY(`e`.`date`) = 5
GROUP BY `a`.`ID`

【讨论】:

以上是关于PHP/SQL 查询:组合两个只有唯一记录的表并计算星期六的主要内容,如果未能解决你的问题,请参考以下文章

mysql查询加入,比较两个表并返回第一个表中的所有记录

用于创建表并在两个字段上添加唯一索引的 Rails 迁移文件在迁移期间似乎被忽略了

如何使用枢轴连接两个表并在一个表中组合两个字段

比较两个 SQL 表并返回缺失的 id?

如何计算明细表中的唯一组合?

如何在 Rails 应用程序中克隆表并保持结构同步?