Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando uma matriz em uma consulta SQL


Aqui está um layout geral para você, faça três tabelas como você mencionou, descrevi abaixo apenas como exemplo

[TABELAS]
  • usuários
  • seguidores
  • postagens

Na tabela de usuários, você deve ter pelo menos colunas como userid (valor incrementado automaticamente / chave primária).

A tabela de seguidores deve ter algo como userid que corresponderia ao userid da tabela de usuários, uma coluna followid que também teria o id # para o seguidor da tabela de usuários.

Então, para sua tabela de postagens, você também deseja ter o ID do usuário, para que quando cada postagem seja feita, ela tenha o ID da tabela de usuários.

Então você precisaria fazer algo como:
SELECT p.*
FROM posts AS p
WHERE p.userid IN (SELECT followid FROM followers WHERE userid = ###)
ORDER BY p.date DESC

Agora, realmente depende de como você está obtendo o ID do usuário para descobrir isso. Se você estiver passando o ID do usuário usando uma sessão depois que eles efetuaram login semelhante a algo como o Facebook, você poderá alterar userid =### para algo como userid =".$_SESSION['userid']." Mas, novamente, realmente depende de como você passa o ID do usuário, mas o acima deve pelo menos começar um pouco.

Certifique-se de colocar índices nas colunas userid e followid para que, quando a tabela ficar maior, ela faça as junções rapidamente.