2016-05-15 72 views
2

我想显示一组基于它的隐私类型的结果。使用sqlite有三个不同的搜索结果

我使用lavavel 4.2,php,blade和sqlite。

我有公共,朋友和私人。 公共任何人都可以阅读,朋友只有作者和朋友可以阅读和私人只有作者可以阅读它。

该网站提供登录/退出功能。

这可以用一个sqlite查询来完成吗?

任何帮助,非常感谢。

回答

2

是的,你可以使用UNION ALL来组合多个查询的结果。这里有一个例子:

SELECT * FROM friends WHERE is_private="1" 
UNION ALL 
SELECT * FROM friends WHERE is_public="1" 
UNION ALL 
SELECT * FROM friends WHERE is_mine="1" 
GROUP BY friends.user_id -- optionally remove duplicates 

请注意,--表示在SQL注释

+0

感谢。我认为这很容易。 这不仅仅来自朋友,没有朋友在公共和私人用户只。朋友只有关系清单。 但是,联盟看起来像一个好的开始。 –

+1

您也可以使用UNION而不是UNION ALL删除重复项。 –

+0

@RichardLawton如果表具有不同的列名,则应使用“SELECT first_name AS friend_name”之类的别名。通过这种方式,您可以确保您的所有表格将在结果中共享公共列名称。 – r3wt