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

MySQL Flere interesser matchende problem

Dette er helt sikkert muligt med MySQL, men jeg tror, ​​du kan gøre det på en akavet måde. Jeg vil begynde med at strukturere tabellerne som følger:

TABLE Users ( userId, username, location )
TABLE Interests( interestId, hobby )
TABLE UserInterests( userId, interestId, level )

Når en bruger tilføjer en interesse, hvis den ikke er blevet tilføjet før, tilføjer du den til Interests tabel, og tilføj den derefter til UserInterests bord. Når du vil tjekke efter andre personer i nærheden med lignende interesser, kan du blot forespørge på UserInterests tabel for andre mennesker, der har lignende interesser, som allerede har alle disse oplysninger til dig:

SELECT DISTINCT userId
  FROM UserInterests
  WHERE interestId IN (
     SELECT interestId
       FROM UserInterests
       WHERE userId = $JoesID
     )

Dette kan sikkert gøres på en mere elegant måde uden underforespørgsler, men det er det, jeg tænkte på nu.



  1. Sådan kontrolleres om værdi findes i en MySQL-database

  2. Sådan oprettes fremmednøglebegrænsning med ON DELETE SET NULL-indstillingen i SQL Server - SQL Server / TSQL Tutorial Del 81

  3. PHP &MYSQL:bruger gruppe efter til kategorier

  4. VÆLG FOR OPDATERING med SQL Server