Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utiliser un tableau dans une requête SQL

Voici une mise en page générale pour vous, faites trois tableaux comme vous l'avez mentionné, j'ai décrit ci-dessous juste à titre d'exemple

[TABLEAUX]

  • utilisateurs
  • abonnés
  • messages

Dans la table des utilisateurs, vous devriez avoir au moins des colonnes comme userid (valeur incrémentée automatiquement / clé primaire).

La table des abonnés devrait avoir quelque chose comme userid qui correspondrait à l'ID utilisateur de la table des utilisateurs, une colonne followid qui aurait également l'id # pour l'abonné de la table des utilisateurs.

Ensuite, pour votre table de messages, vous voudriez également avoir l'ID utilisateur, donc lorsque chaque message est publié, il aurait l'identifiant de la table des utilisateurs.

Ensuite, vous devrez faire quelque chose comme :

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

Maintenant, cela dépend vraiment de la façon dont vous obtenez l'identifiant des utilisateurs pour comprendre cela. Si vous transmettez l'identifiant de l'utilisateur à l'aide d'une session après sa connexion similaire à quelque chose comme Facebook, vous pouvez alors remplacer userid =### par quelque chose comme userid =".$_SESSION['userid']." Mais encore une fois, cela dépend vraiment de la façon dont vous transmettez l'identifiant de l'utilisateur, mais ce qui précède devrait au moins vous aider à démarrer.

Assurez-vous de mettre des index sur les colonnes userid, followid de sorte que lorsque la table devient plus grande, elle fera les jointures rapidement.