[英]Trying to write count query loop based on a different table printing
我有兩張桌子:
access(name, id, check, key)
events(name, key, event_name)
我正在嘗試將這些表中的一些內容打印到包含這些列的 php/html 表中:
name, key, event_name, access count
我的麻煩是我希望每個事件都顯示具有相同鍵的訪問行的“計數”。
事件表示例:
name key event_name
test 1 first
joe 2 second
和訪問表...
name id check key
test 123 yes 1
test 1235 yes 1
joe 175 yes 2
joe 852 yes 2
test 5843 yes 1
test 123455 yes 1
我希望得到的表如下所示:
name key event_name access count
test 1 first 4
joe 2 second 2
有人知道怎么做這個嗎? 我已經做到了,但它顯然不起作用,因為密鑰沒有提供給內部 select 查詢......
select event_name, name, key,
(SELECT COUNT(key) FROM access WHERE key=key AND name=name)
from event;
感謝任何看過並可能有任何想法的人! 我已經盯着這個和 w3schools 看了好幾個小時
目前,您的子查詢將返回所有行的計數,因為它與主查詢不相關,因此key=key
中的兩次出現的key
都將引用同一列,並且表達式將始終為真(對於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
您還可以通過連接和聚合獲得相同的結果:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.