как сказал Nimeкстати насчет сервера знакомств где надо выбирать человека с похожими интересами ... очень похожая задача мож кто растолкует как ??
таблица связей u_iхранишь отдельную таблицу атрибутов (или интересов), таблицу пользователей, и таблицу, которая их связывает - user_id, attribute_id.
select distinct u2.u_id, count(*) cn
from u_i u1, u_i u2
where u1.u_id = 1 and u1.i_id=u2.i_id and u2.u_id <> 1
group by u2.u_id
order by cn desc;