Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden eines Arrays in einer SQL-Abfrage

Hier ist ein allgemeines Layout für Sie. Erstellen Sie drei Tabellen, wie Sie sie erwähnt haben. Ich habe sie unten nur als Beispiel skizziert

[TABELLEN]

  • Benutzer
  • Follower
  • Beiträge

In der Benutzertabelle sollten Sie mindestens Spalten wie userid (automatisch erhöhter Wert / Primärschlüssel) haben.

Die Follower-Tabelle sollte so etwas wie userid haben, die mit der userid-Tabelle der Users übereinstimmen würde, eine followid-Spalte, die auch die ID # für den Follower aus der users-Tabelle enthalten würde.

Dann möchten Sie für Ihre Beitragstabelle auch eine Benutzer-ID haben, damit jeder Beitrag, der erstellt wird, die ID aus der Benutzertabelle hat.

Dann müssten Sie so etwas tun:

SELECT p.*
FROM posts AS p
WHERE p.userid IN (SELECT followid FROM followers WHERE userid = ###)
ORDER BY p.date DESC

Jetzt hängt es wirklich davon ab, wie Sie die Benutzer-ID erhalten, um dies herauszufinden. Wenn Sie die Benutzer-ID über eine Sitzung weitergeben, nachdem sie sich ähnlich wie bei Facebook angemeldet haben, können Sie userid =### in etwas wie userid =".$_SESSION['userid']" ändern. Aber auch hier hängt es wirklich davon ab, wie Sie die Benutzer-ID übergeben, aber das oben Genannte sollte Ihnen zumindest den Einstieg erleichtern.

Achten Sie darauf, Indizes auf die Spalten userid, followid zu setzen, damit die Joins schnell ausgeführt werden, wenn die Tabelle größer wird.