Pokud je váš přátelský vztah symetrický, můžete každý pár uložit do samostatného záznamu:
friend1 friend2
A B
B A
A C
B D
C B
D B
a dotazujte se na všechny B
Přátelé uživatele:
SELECT friend2
FROM friends
WHERE friend1 = 'B'
nebo uložit uživatele s nejmenším id
v prvním poli a to s největším id
ve druhém:
friend1 friend2
A B
A C
B D
a dotaz B
Přátelé uživatele:
SELECT friend1
FROM friends
WHERE friend2 = 'B'
UNION ALL
SELECT friend2
FROM friends
WHERE friend1 = 'B'
První možnost je v MySQL
o něco efektivnější , a toto je jediná možnost, pokud váš přátelský vztah není symetrický (jako na LiveJournal
)
Viz tento článek: