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

おそらく1つの選択でユニオンを使用せずにこれを行う方法はありますか?

4

2 に答える 2

1

WHEREを使用して2つの句を組み合わせることができます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 に答える