我有两张桌子: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个赞
目前您的子查询将返回所有行的计数,因为它与主查询不相关,因此两次出现的key
inkey=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
青春有我
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
- 2 回答
- 0 关注
- 73 浏览
添加回答
举报
0/150
提交
取消