Мне удалось получить запрос на получение всех друзей и друзей друзей определенного пользователя.У меня есть таблица пользователей и таблица дружбы.Для простоты, давайте просто скажем, что таблица пользователей имеет только первичный ключ.В таблице дружбы есть столбцы user_id и friend_id.Запрос выглядит следующим образом:
"SELECT DISTINCT friends.user_id, friends.friend_id, users.*
FROM FRIENDSHIPS friends, USERS
WHERE USERS.id = friends.friend_id AND friends.user_id = #{u.id}
UNION
SELECT DISTINCT fof.user_id, fof.friend_id, users.*
FROM FRIENDSHIPS friends, FRIENDSHIPS fof, USERS
WHERE USERS.id = fof.friend_id AND friends.friend_id = fof.user_id AND friends.user_id = #{u.id}"
u.id - это идентификатор пользователя, которого я хочу получить от всех друзей и друзей друзей.
Этот запрос работает очень хорошо, однако яхотел бы преобразовать это в запрос, используемый sphinx's sql_attr_multi.Я пытался разместить его так:
sql_attr_multi = uint fwfof from query; \
SELECT DISTINCT `friends`.`user_id`, `friends`.`friend_id`, `users`.`id` \
FROM `friendships` friends, `users` \
WHERE `users`.`id` = `friends`.`friend_id` AND `friends`.`user_id` = $id \
UNION \
SELECT DISTINCT `fof`.`user_id`, `fof`.`friend_id`, `users`.`id` \
FROM `friendships` `friends`, `friendships` `fof`, `users` \
WHERE `users`.`id` = `fof`.`friend_id` AND `friends`.`friend_id` = `fof`.`user_id` AND `friends`.`user_id` = $id
, но это явно не удалось.
Как сделать этот запрос доступным для индексатора sphinx?
Заранее спасибо за всеэто укажет мне правильное направление.