Mysql 从多个表中获取时间戳计数

Mysql 从多个表中获取时间戳计数,mysql,join,count,timestamp,Mysql,Join,Count,Timestamp,我有一个节点表: nid type created status 2 blog 134292319 1 3 forum 134292536 1 4 blog 135921392 0 要绘制一段时间内已发布(status=1)节点的数量,我执行以下查询: SELECT created, type FROM node WHERE status = 1 ORDER BY created SELECT timestamp FROM comments INNER JOIN nod

我有一个节点表:

nid type  created   status
2   blog  134292319 1
3   forum 134292536 1
4   blog  135921392 0
要绘制一段时间内已发布(status=1)节点的数量,我执行以下查询:

SELECT created, type
FROM node WHERE status = 1
ORDER BY created
SELECT timestamp
FROM comments
INNER JOIN node ON comments.nid = node.nid
WHERE
  node.type = 'forum'
  AND comments.status = 1
ORDER BY timestamp
然后,我在PHP中遍历了这个数据集,将其拆分为带有时间戳的组,每个组都有一个与之相关联的节点计数。结果是缓存的,因此执行速度慢不是问题

我还有一个意见表:

nid timestamp status
2   134292363 1
3   134293234 1
我想将论坛评论数合并到节点数图中

要获取注释计数,我将运行以下查询:

SELECT created, type
FROM node WHERE status = 1
ORDER BY created
SELECT timestamp
FROM comments
INNER JOIN node ON comments.nid = node.nid
WHERE
  node.type = 'forum'
  AND comments.status = 1
ORDER BY timestamp
我需要以某种方式将这两个查询结合起来,最终得到(对于给出的示例):

有什么想法吗


谢谢。

这将为您提供示例输出,但根据您对问题的描述,我不确定它是否正是您想要的

SELECT created, type FROM
(
   SELECT created, type
   FROM node WHERE status = 1

   UNION ALL

   SELECT timestamp as created, 'forum_comment' as type
   FROM comments
   INNER JOIN node ON comments.nid = node.nid
   WHERE node.type = 'forum'
     AND comments.status = 1
) AS U
ORDER BY U.created

我不明白你所说的论坛评论数是什么意思。您的示例输出不显示计数。此外,输出是否仅应按
时间戳
/(
已创建
)排序?是的,输出应按创建日期排序。MySQL不应该输出这样的计数;是PHP将实际结果转化为计数。也就是说,它遍历结果集,每次时间戳达到某个值时,它都会增加“组”-否则会将一个值添加到当前组的计数中。然后,与各自的时间戳相关联的计数存储在缓存表中。事实上,这正是我要查找的。从来没有听说过工会。干杯:D