假设有一个社交网络,我想显示我的登录用户的群组/朋友/家庭成员的最新活动
我在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
有没有办法在不使用联合的情况下做到这一点?
您可以使用OR
合并两个WHERE
子句
SELECT...
FROM...
WHERE (user_id in (implode(',' , $groups_friends_array)) AND level < 2) OR
(user_id in (implode(',' , $family_array)) AND level < 3)
select * from registry
where
(
user_id in (implode(',' , $groups_friends_array) ) and level < 2
)
or
(
user_id in (implode(',' , $family_array) ) and level < 3
)