Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di un array in una query SQL

Ecco un layout generale per te, crea tre tabelle come hai menzionato, che ho delineato di seguito solo come esempio

[TABELLE]

  • utenti
  • seguaci
  • Post

Nella tabella degli utenti dovresti avere almeno colonne come userid (valore auto incrementato/chiave primaria).

La tabella dei follower dovrebbe avere qualcosa come userid che corrisponderebbe all'userid della tabella degli utenti, una colonna followid che avrebbe anche l'id # per il follower dalla tabella degli utenti.

Quindi per la tabella dei tuoi post vorresti avere anche l'id utente in modo che quando viene creato ogni post avrebbe l'id dalla tabella degli utenti.

Quindi dovresti fare qualcosa del tipo:

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

Ora dipende davvero da come stai ottenendo l'ID utente per capirlo. Se passi l'ID utente utilizzando una sessione dopo che hanno effettuato l'accesso in modo simile a qualcosa come Facebook, puoi cambiare userid =### in qualcosa come userid =".$_SESSION['userid']." Ma ancora una volta dipende davvero da come passi l'ID utente, ma quanto sopra dovrebbe almeno farti iniziare un po'.

Assicurati di inserire gli indici nelle colonne userid e followid in modo che quando la tabella diventa più grande eseguirà rapidamente i join.