sql >> Databáze >  >> RDS >> Mysql

Použití pole v dotazu SQL

Zde je pro vás obecné rozložení, vytvořte tři tabulky, jak jste zmínil, níže jsem nastínil jen jako příklad

[TABULKY]

  • uživatelé
  • sledující
  • příspěvky

V tabulce uživatelů byste měli mít alespoň sloupce jako userid (automaticky zvýšená hodnota / primární klíč).

Tabulka sledujících by měla mít něco jako userid, které by odpovídalo userid tabulky uživatelů, sloupec followid, který by měl také ID # pro následovníka z tabulky uživatelů.

Pak byste pro svou tabulku příspěvků chtěli mít také ID uživatele, takže když bude každý příspěvek vytvořen, bude mít ID z tabulky uživatelů.

Pak byste museli udělat něco jako:

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

Nyní opravdu záleží na tom, jak získáváte ID uživatele, abyste to zjistili. Pokud předáváte ID uživatelů pomocí relace poté, co se přihlásili, podobně jako něco jako Facebook, můžete změnit userid =### na něco jako userid =".$_SESSION['userrid']." Ale opět opravdu záleží na tom, jak předáte ID uživatele, ale výše uvedené by vás mělo alespoň trochu začít.

Nezapomeňte umístit indexy do sloupců userid, followid, takže když se tabulka zvětší, rychle se spojí.



  1. Vypočítejte součet trvání v dotazu SQL

  2. ORACLE/SQL:wm_concat &objednat podle

  3. Proč se odhadovaný počet řádků ve výsledcích phpmyadmin velmi liší?

  4. Jak spustit skript mysql s proměnnými pomocí PHP::PDO?