Hvis dit venskabsforhold er symmetrisk, kan du enten gemme hvert par i en separat post:
friend1 friend2
A B
B A
A C
B D
C B
D B
og forespørg alle B
s venner kan lide det:
SELECT friend2
FROM friends
WHERE friend1 = 'B'
eller gem brugeren med det mindste id
i det første felt og det med det største id
i den anden:
friend1 friend2
A B
A C
B D
og forespørg B
s venner kan lide det:
SELECT friend1
FROM friends
WHERE friend2 = 'B'
UNION ALL
SELECT friend2
FROM friends
WHERE friend1 = 'B'
Den første mulighed er en lille smule mere effektiv i MySQL
, og dette er den eneste mulighed, hvis dit venskabsforhold ikke er symmetrisk (som på LiveJournal
)
Se denne artikel: