我有以下表格:如何使用集合函數從相關查詢中加入數據?
userActions:
id | uId | goodAction | actionOverridden | dateAdded
我寫了一個查詢來獲取:
- 善行數(行,其中
goodAction = 1
) - 不良行爲的數目(行,其中
goodAction = 0
) - 被覆蓋的動作數(行數
actionOverridden = 1
)
SELECT
(SELECT COUNT(*)
FROM userActions ua
WHERE ua.goodAction = 0 AND ua.dateAdded > NOW() - INTERVAL 1 year AND ua.uId = 520) badActions,
(SELECT COUNT(*)
FROM userActions ua
WHERE ua.goodAction = 1 AND ua.dateAdded > NOW() - INTERVAL 1 year AND ua.uId = 520) goodActions,
(SELECT COUNT(*)
FROM userActions ua
WHERE ua.actionOverridden = 1 AND ua.dateAdded > NOW() - INTERVAL 1 year AND ua.uId = 520) actionOverrides
上述查詢得到的數據與ID 520
用戶,但我希望得到這個信息的所有用戶。通過上面的查詢,我需要獲取PHP中的用戶列表,然後遍歷列表並執行上面的查詢,注入用戶ID。
如何修改上述查詢以使其檢索所有用戶的數據?
我知道AND ua.uId = 520
條件將需要從子查詢中刪除,我認爲GROUP BY ua.uId
將用於子查詢以外,但我不知道該怎麼辦。