sql >> Database >  >> RDS >> Mysql

een vriendenlijst instellen in mysql

Als je vriendschapsrelatie symmetrisch is, kun je elk paar in een apart record opslaan:

friend1 friend2
A       B
B       A
A       C
B       D
C       B
D       B

en doorzoek alle B 's vrienden vinden dat leuk:

SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

of sla de gebruiker op met de minste id in het eerste veld en dat met de grootste id in de tweede:

friend1  friend2
A        B
A        C
B        D

en vraag B 's vrienden vinden dat leuk:

SELECT  friend1
FROM    friends
WHERE   friend2 = 'B'
UNION ALL
SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

De eerste optie is iets efficiënter in MySQL , en dit is de enige optie als je vriendschapsrelatie niet symmetrisch is (zoals op LiveJournal )

Zie dit artikel:



  1. Werken met JavaFX-diagram-API's

  2. kaartpoorten instellen op 80 en 3306

  3. Hoe de positie van een lijstitem in MySQL te retourneren

  4. Is er een officiële Oracle-aanbeveling over het gebruik van expliciete ANSI JOIN's versus impliciete joins?