CREATE TABLE `social_activity_stream` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`social_actor_id` int(11) NOT NULL,
`social_activity_id` bigint(20) NOT NULL,
`social_activity_type_id` int(11) NOT NULL,
`social_share_policy_id` int(11) DEFAULT NULL,
`social_user_friend_id` bigint(20) DEFAULT NULL,
`date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`date_read` datetime DEFAULT NULL,
PRIMARY KEY (`id`))
每个社交行为者都创建一个社交活动,共享策略PUBLIC,PRIVATE,FRIENDS 让我们说有3个演员: A,B,C 他们是朋友
A与FRIENDS(策略)共享的活动将在表中创建3行:
B想要浏览A的活动流: 这是伪查询:
任何想法都可以在一个查询中完成吗?
答案 0 :(得分:0)
Duh,这很简单。确实是一个糟糕的问题。
SELECT a.*
from social_activity_stream a INNER JOIN social_activity_stream b USING(social_activity_id) WHERE
a.social_actor_id = [user_id] and b.social_actor_id = [friend_id];