我有3代表工作: 用户(ID,名字,姓氏,类型,禁用) 评论(ID,发件人,日期) comment_recipient(COMMENT_ID,USER_ID)查询多个表和组按月/年
我正在尝试查找给出或接收给定月份/年的评论的用户的数据。我想要的结果行: 名字|姓氏|给出的评论|收到的评论|月|
年为单个注释可以有多个收件人(许多条目comment_recipient)
我开始关注此问题,这似乎有点类似: group-by-month-and-year-count-from-another-table
这是我目前有:
SELECT
firstName AS 'First Name',
lastName AS 'Last Name',
given AS 'Comments Given',
received AS 'Comments Received',
MONTHNAME(d_yearmonth) AS Month,
YEAR(d_yearmonth) AS Year
FROM (
SELECT
LAST_DAY(c.date) AS d_yearmonth,
u.firstName,
u.lastName,
(SELECT COUNT(*) FROM comment AS c1 WHERE c1.sender=c.sender
AND LAST_DAY(c1.date)=d_yearmonth) AS given,
'24' AS received
FROM comment AS c
JOIN comment_recipient AS cr ON cr.comment_id=c.id
JOIN user AS u ON u.id=c.sender
WHERE u.type<4 AND u.disabled=0
GROUP BY
d_yearmonth
) AS s
ORDER BY Year DESC,
MONTH(d_yearmonth) DESC
我现在只是使用'24'代表'收到',因为我试图在一段时间内计算出1件东西
我不需要计算每个用户或每个月,因此如果他们在给定和收到时都返回0,他们可以被忽略