为了账号安全,请及时绑定邮箱和手机立即绑定

尝试根据不同的表打印编写计数查询循环

尝试根据不同的表打印编写计数查询循环

PHP
人到中年有点甜 2022-12-30 17:12:04
我有两张桌子:access(name, id, check, key)events(name, key, event_name)我正在尝试将这些表中的一些内容打印到包含这些列的 php/html 表中:name, key, event_name, access count我的麻烦是我希望每个事件都显示具有相同键的访问行的“计数”。事件表示例:name  key  event_nametest  1  firstjoe  2  second和访问表...name  id  check  keytest  123  yes  1test  1235  yes  1joe  175  yes  2joe  852  yes  2test  5843  yes  1test  123455  yes  1结果表我希望看起来像这样:name  key  event_name  access counttest  1  first  4joe  2  second  2有人知道怎么做这个吗?我已经做到了,但它显然不起作用,因为密钥没有提供给内部选择查询......select event_name, name, key,        (SELECT COUNT(key) FROM access WHERE key=key AND name=name) from event;感谢任何看过并可能有任何想法的人!我盯着这个和 w3schools 看了几个小时
查看完整描述

2 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

目前您的子查询将返回所有行的计数,因为它与主查询不相关,因此两次出现的keyinkey=key将引用同一列并且表达式将始终为真(同样 for name)。要关联子查询,请添加表引用:

select event_name, name, key, 
       (SELECT COUNT(key) FROM access a WHERE a.key=e.key AND a.name=e.name) AS `access count`
       from event e


查看完整回答
反对 回复 2022-12-30
?
青春有我

TA贡献1784条经验 获得超8个赞

您还可以通过连接和聚合获得相同的结果:


select e.name, e.key, e.event_name, count(*) access_count

from event e

left join access a on a.key = e.key and a.name = e.name

group by e.name, e.key, e.event_name


查看完整回答
反对 回复 2022-12-30
  • 2 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信