2016-05-15 8 views
2

Ich möchte eine Reihe von Ergebnissen zeigen, basierend auf dem Datenschutztyp.Habe drei verschiedene Suchergebnisse mit sqlite

Ich benutze Lavavel 4.2, PHP, Blade und SQLite.

Ich habe öffentlich, Freunde und privat. Öffentlich kann jeder lesen, Freunde nur Autor und Freunde können lesen und private nur der Autor kann es lesen.

Die Website verfügt über eine An-/Abmeldefunktion.

Kann dies mit einer SQLite-Abfrage durchgeführt werden?

Jede Hilfe wird sehr geschätzt.

Antwort

2

Ja, Sie können es mit tun, um die Ergebnisse mehrerer Abfragen zu kombinieren. hier ist ein Beispiel:

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 

Bitte beachten Sie, -- bezeichnet einen Kommentar in SQL

+0

Dank. Ich dachte, es wäre einfach genug. Es ist nicht nur von Freunden, es gibt keine Freunde in der Öffentlichkeit und private ist nur Benutzer. Freunde haben nur die Liste der Beziehungen. Aber diese UNION sieht alles wie ein guter Anfang aus. –

+1

Sie können auch Duplikate entfernen, indem Sie UNION anstelle von UNION ALL verwenden. –

+0

@RichardLawton Wenn die Tabelle verschiedene Spaltennamen hat, sollten Sie Aliase wie 'SELECT first_name AS friend_name' verwenden. Auf diese Weise können Sie sicherstellen, dass alle Ihre Tabellen gemeinsame Spaltennamen in den Ergebnissen verwenden. – r3wt