1

假设有一个社交网络,我想向我的登录用户展示他的群组/朋友/家人的最新活动

我在registry表中有所有活动,每个活动有 3 个不同的级别

0 => every one can see it
1 => only friends or in case of group, members can see it
2 => only family members can see it 

我也有 2 个包含登录用户的数组friends_groups AND family

select * from registry where user_id in (implode(',' ,  $groups_friends_array) ) && level < 2 
union
select * from registry where user_id in (implode(',' ,  $family_array) ) && level < 3

有没有办法在不使用联合的情况下以某种方式做到这一点?

4

2 回答 2

1

您可以使用结合这两个WHERE子句OR

SELECT...
FROM...
WHERE  (user_id in (implode(',' ,  $groups_friends_array)) AND level < 2) OR
       (user_id in (implode(',' ,  $family_array)) AND level < 3)
于 2013-06-02T12:06:00.530 回答
0
select * from registry 
where 
(
  user_id in (implode(',' ,  $groups_friends_array) ) and level < 2
)
or
(
  user_id in (implode(',' ,  $family_array) ) and level < 3
)
于 2013-06-02T12:06:18.893 回答