我有兩張桌子: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
青春有我
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 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消
