簡體   English   中英

嘗試根據不同的表格打印編寫計數查詢循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM