|
MySQL.RU - Webboard
Вернуться
Выборка пользователей со сложным условием (Андрій) 03/06/2016 - 12:54:15
Re: Выборка пользователей со сложным условием (Akina) 03/06/2016 - 13:02:58
Re: Выборка пользователей со сложным условием (Андрій) 03/06/2016 - 18:00:43
Re: Выборка пользователей со сложным условием (Андрій) 03/06/2016 - 18:01:38
Re: Выборка пользователей со сложным условием (Akina) 03/06/2016 - 18:39:06
Re: Выборка пользователей со сложным условием (Андрій) 03/06/2016 - 18:52:04
Re: Выборка пользователей со сложным условием (Akina) 03/06/2016 - 22:40:18
Re: Выборка пользователей со сложным условием (Андрій) 04/06/2016 - 18:56:14
> Original message text:
> From: Андрій - 03/06/2016 - 12:54:15
> Subject: Выборка пользователей со сложным условием
> -----------------
> Задача: Нужно составить запрос так чтобы выводил всех пользователей сайта кроме тех, что есть в друзьях авторизованного пользователя и эво самого.
>
> Есть две таблицы:
> Первая user - список пользователей сайта
> Вторая friends - связь двух пользователей которые являются друзьями
>
> Таблица user имеет колонки:
> id_сер - id пользователя
> name - имя пользователя
>
> Таблица friends имеет колонки:
> id_s - id пользователя который отправил запрос на дружбу
> id_f - id пользователя принявший запрос на дружбу
>
> То что я на данный момент составил:
>
> SELECT name,id_s,id_f,id_user
> FROM user LEFT JOIN friends
> ON user.id_user = friends.id_s
> WHERE
> id_s IS NULL AND id_user NOT IN (SELECT id_f
> FROM friends
> WHERE
> id_s = $user_id)
> AND id_user NOT IN (SELECT id_s
> FROM friends
> WHERE
> id_f = $user_id)
> UNION
> SELECT name,id_s,id_f,id_user
> FROM user LEFT JOIN friends
> ON user.id_user = friends.id_s
> WHERE id_s != $user_id AND id_f != $user_id
>
>
>
> $user_id - id авторизованного пользователя
>
> Проблемы которые возникли:
> 1. Одни и те же пользователи выводятся несколько раз
> 2. Если пользователь не имеет еще друзей то в списке выводится и он (Знаю как решить).
>
> Вопрос:
> 1. Можно составить запрос более производительним? Если да, то как?
> 2. Если логика запроса правильная то как решить Вышеперечисленные проблемы?
>
> Приоритеты:
> 1.Время выполнения запроса
> 2.Количество занимаемого места
>
From: Akina - 03/06/2016 - 18:39:06
Subject: Выборка пользователей со сложным условием
-----------------
> что делать если некоторые пользователи выводятся по несколько раз?
В моём запросе это возможно только в случае, если эти пользователи в таблице user записаны несколько раз... что странно, ибо id_user по смыслу должен быть первичным ключом и, соответственно, уникальным.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
43557
|
|