2016-05-15 4 views
2

私はプライバシーの種類に基づいて一連の結果を表示したいと考えています。sqliteを使用して3つの異なる検索結果があります

私は、lavavel 4.2、php、blade、およびsqliteを使用しています。

私は一般人、友人、私的です。 公開している誰もが読むことができ、友人のみが読者が閲覧でき、私的な人のみが読める。

サイトにはログイン/ログアウト機能があります。

これは1つの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 

注意してください、--

+0

おかげSQLでコメントを表します。私はそれが十分に簡単だと思った。 これは友人からのものではなく、公開されている友人はいません。友人には関係のリストしかありません。 しかし、その連合はすべて、良いスタートのように見えます。 –

+1

また、UNION ALLではなくUNIONを使用して重複を削除することもできます。 –

+0

@RichardLawtonテーブルに異なるカラム名がある場合は、 'SELECT first_name AS friend_name'のようなエイリアスを使うべきです。このようにして、すべてのテーブルが結果に共通の列名を共有するようにすることができます。 – r3wt

関連する問題