我有一个以wp_bp_activity
许多列命名的表,我认为我应该使用其中的 4 个列来解决这个问题:id
、type
和.item_id
date_recorded
1 -当有人发布新活动type
时activity_update
item_id
0
2 -当有人对某项活动发表新评论时,它在列中type
存在activity_comment
并且item_id
存在活动 IDid
3 -在两者中,date_recorded
是插入数据的日期。
表中还有更多type
的s。
但我只想获取某人最近回复或type
新的行(基于我认为)activity_update
date_recorded
我试过的是:
SELECT a.*, b.*
FROM wp_bp_activity as a, wp_bp_activity as b
WHERE
((b.type = 'activity_update') OR (b.type = 'activity_comment' AND b.item_id = a.id))
order by cast(a.date_recorded as datetime) desc
limit 0,20
这需要很长时间才能执行并以内存不足错误结束。
感谢您对此类查询的任何帮助。
更新#1
wp_bp_activity table
id type item_id date_recorded
|---------|-----------------------|-----------|--------------------------
| 12081 | activity_comment | 12079 | 2013-10-18 07:27:01
|---------|-----------------------|-----------|--------------------------
| 12080 | activity_update | 0 | 2013-10-18 07:26:40
|---------|-----------------------|-----------|--------------------------
| 12079 | activity_update | 0 | 2013-10-17 05:15:43
我想从这个表中得到哪些行是这些 id,按以下顺序:
12079
12080
我不想得到的:
activity_comment
类型
行应该按什么顺序获取?
如您所见,activity_comment
类型为的行item_id
的值为12079
。12079
最近有人对其发表评论的最新活动也是如此,并且没有12080
评论但刚刚发布。所以我想要两者,但按以下顺序:
12079
12080