SQL从2个表中选择,逐个月分组

时间:2013-01-21 12:45:01

标签: mysql sql select

好的,所以我有2张桌子

第一个称为msg,另一个称为msg_t

msg(id,send_type,..) msg_t(id,msg_id,send_time)

我要做的是获取send_type = 1

的所有msg

并计算每个msg_t的{​​{1}}条目并按月分组

我该怎么做?

2 个答案:

答案 0 :(得分:1)

SELECT  a.ID, MONTHNAME(b.send_time), COUNT(b.msg_id) totalCount
FROM    msg a
        LEFT JOIN msg_t b
            ON a.ID = b.msg_id
WHERE   a.send_type = 1
GROUP   BY a.ID, MONTH(b.send_time)

使用LEFT JOIN,对于msg.ID

上没有记录的msg_t,将显示零值

答案 1 :(得分:1)

SELECT
  m.id,
  MONTH(send_time)
  COUNT(t.*)
FROM msg m
INNER JOIN msg_t t ON m.id = t.msg_id
WHERE m.send_type = 1
GROUP BY m.id,
         MONTH(send_time)