Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Хитрый запрос (mcfly) 24/04/2009 - 11:28:25
      Re: Хитрый запрос (Diter) 25/04/2009 - 19:30:13
      Re: Хитрый запрос (mcfly) 27/04/2009 - 09:07:11
      Re: Хитрый запрос (Diter) 27/04/2009 - 18:05:46
      Re: Хитрый запрос (igorsia) 30/04/2009 - 11:35:08

> Original message text:
> From: mcfly - 24/04/2009 - 11:28:25
> Subject:Хитрый запрос
> -----------------
> Имеем две таблицы users и friends. В users хранятся данные пользователей (id, name). Во friends (id, user1_id, user2_id) хранятся отношения пользователей, которые находятся в друзьях. user1_id - это пользователь который подал запрос на добавление, а user2_id - это кто разрешил.
>
> Теперь вопрос: Каким образом подать запрос, чтобы получить список друзей (данных из users) пользователя по ид пользователя.
>
> Заморочка в том, что ид пользователя может быть как в поле user1_id, так и в поле user2_id :)
>
> Заранее благодарствую :)
>


From: Diter - 25/04/2009 - 19:30:13
Subject:Хитрый запрос
-----------------
Странная у Вас структура. Я бы таблицу friends сделал как: (user_id, friend_id, approved), где user_id - пользователь, friend_id - его друг, а approved - статус подтверждения дружбы {0|1}.

А так непонятно, как это все работает. Допустим, мой id=10, и я хочу подружиться с пользователем id=30, то что добавляется в таблицу friends после моего запроса? (id_i, 10, NULL)? (id_i, 10, 0)? где id_i - это очередной ключ для таблицы friends. Или как? Что храниться в id таблицы friends?

Или же id таблицы friends - это id друга, и тогда из выше указанного примера, в таблицу friends добаляется строка (30,10,NULL) или (30,10,0)? Если допустить это, тогда запрос на получение данных из таблицы users для определенного пользователя, id которого может встречаться в полях user1_id или user2_id таблицы friends, где $userID - это наш текущий пользователь, делается так:

SELECT DISCTINCT u.* FROM users as u, friends as f
WHERE u.id=f.id AND (f.user1_id=$userID OR f.user2_id=$userID)




[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35508



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |