Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Sql запрос  [new]
Oleg4610
Member

Откуда:
Сообщений: 2
У меня такая проблема.
Из базы данных нужно выбрать последние диалоги с друзьями и последние далоги с людьми которые не являются друзьями, и информацию об этих людях. И также отсортировать все диалоги по времени.
Для этого в базе данных есть 3 такие таблицы:
1. Таблица смс(сообщений) содержащая следующие поля: номер смс, текст, дата отправки, айди пользователя что отправлял, айди пользователя которому отправили
2. Таблица друзей содержащий следующие поля: мой номер, номер друга
3. Таблиця пользователей (айди, логин итд)

Я решал это таким способом( для выборки последних диалогов только с друзьями ):
1. Выбираем все смс которые я отправил
2. В цикле проверяем собеседника (друг или не друг), если друг - сохраняем в список

Выбираем смс написанные мне
В цикле проверяем собеседника (друг или не друг) , если друг - сохраняем в список
Сортируем полученные списки по дате (исключая уже добавленного собеседника)
Мой алгоритм выполняется очень долго из-за количества смс и людей. Подскажите пожалуйста, как можно оптимизировать? MS SQL база данных.
17 июн 15, 18:41    [17784030]     Ответить | Цитировать Сообщить модератору
 Re: Sql запрос  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
Oleg4610,
автор
Подскажите пожалуйста, как можно оптимизировать? MS SQL база данных.

Поменять цикл на запрос с соединениями, ваш КЭП
17 июн 15, 18:46    [17784052]     Ответить | Цитировать Сообщить модератору
 Re: Sql запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
Oleg4610
Подскажите пожалуйста, как можно оптимизировать? MS SQL база данных.

http://www.firststeps.ru/sql/
17 июн 15, 22:03    [17784815]     Ответить | Цитировать Сообщить модератору
 Re: Sql запрос  [new]
Oleg4610
Member

Откуда:
Сообщений: 2
WarAnt, Как ето можна зделать?
18 июн 15, 17:58    [17789051]     Ответить | Цитировать Сообщить модератору
 Re: Sql запрос  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Oleg4610
WarAnt, Как ето можна зделать?


Изучать предмет, чуть раньше, чем приходит сессия.
18 июн 15, 18:02    [17789065]     Ответить | Цитировать Сообщить модератору
 Re: Sql запрос  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
Oleg4610
WarAnt, Как ето можна зделать?


ну для начала, оформить тему как положено
18 июн 15, 18:03    [17789074]     Ответить | Цитировать Сообщить модератору
 Re: Sql запрос  [new]
Добрый Э - Эх
Guest
Oleg4610,

для начала почитать про [LEFT] JOIN. а там видно будет
18 июн 15, 18:04    [17789082]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить