Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 30.05.2009, 22:22   #1
Специалист
 
Аватар для Fredy314
 
Регистрация: 08.05.2008
Сообщений: 197
Вес репутации: 0
Fredy314 не любят в этих краяхFredy314 не любят в этих краяхFredy314 не любят в этих краях
По умолчанию Помогите составить SQL запрос?

Есть таблица messages с полями from to date (и другими) соответственно ID пользователей отправившего и получившего сообщения
Нужно составить два запроса
Первый чтоб показывал сколько есть неотвеченых сообщений для пользователя с ID=1 от всех остальных пользователей в сумме
и второй для пользователя с ID=1 от пользователя напрмер с ID=2
сообщение считается отвеченым когда для сообщения от пользователя 1 для пользователя 2 существует сообщение от пользователя 2 для пользователя 1 с датой позже по времени.
у меня что-то никак не получается посщитать. помогите составить запросы пожатуйста.
__________________
Магазин аккаунтов - почтовые аки, фрихосты, соцсети.
Возможно на заказ.
Fredy314 вне форума   Ответить с цитированием
Старый 30.05.2009, 22:39   #2
Новичок
 
Регистрация: 25.09.2008
Сообщений: 46
Вес репутации: 190
derbauer скоро станет известен
По умолчанию

1. select count(*) from messages where date > (select date from messages where from=id1 order by date limit 1)

2. select count(*) from messages where to=id1 and from=id2 and date>(select date from messages where from=id1 order by date limit 1)

как обойтись без вложенного запроса - не представляю.
derbauer вне форума   Ответить с цитированием
Старый 30.05.2009, 22:44   #3
Новичок
 
Регистрация: 06.03.2008
Сообщений: 61
Вес репутации: 198
roll скоро станет известен
По умолчанию

По-моему лучше по-другому спроектировать, чем вытаскивать из такого набора данных.
roll вне форума   Ответить с цитированием
Старый 30.05.2009, 22:58   #4
Специалист
 
Аватар для Fredy314
 
Регистрация: 08.05.2008
Сообщений: 197
Вес репутации: 0
Fredy314 не любят в этих краяхFredy314 не любят в этих краяхFredy314 не любят в этих краях
По умолчанию

Лядно буду переделывать базу, добавлю просто поле прочитано, и буду его считать и всё, Всем спасибо.
__________________
Магазин аккаунтов - почтовые аки, фрихосты, соцсети.
Возможно на заказ.
Fredy314 вне форума   Ответить с цитированием
Старый 31.05.2009, 13:27   #5
Мне повезёт!
 
Аватар для Alexey
 
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
Alexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Fredy314 Посмотреть сообщение
Лядно буду переделывать базу, добавлю просто поле прочитано, и буду его считать и всё, Всем спасибо.
Очень правильное решение. Значительно ускорит работу ваших запросов.

Добавлено через 6 минут
P.S: если хочется автоматики - напишите триггер, который будет автоматически устанавливать этот флаг при добавлении сообщения.
__________________
Everything will be great in the end.
If it's not great, it's not the end.

Последний раз редактировалось Alexey; 31.05.2009 в 13:27. Причина: Добавлено сообщение
Alexey вне форума   Ответить с цитированием
Старый 01.06.2009, 20:51   #6
Специалист
 
Аватар для Fredy314
 
Регистрация: 08.05.2008
Сообщений: 197
Вес репутации: 0
Fredy314 не любят в этих краяхFredy314 не любят в этих краяхFredy314 не любят в этих краях
По умолчанию

Тригерами ещё ниразу не занимался, их mysql вообще поддерживает?
__________________
Магазин аккаунтов - почтовые аки, фрихосты, соцсети.
Возможно на заказ.
Fredy314 вне форума   Ответить с цитированием
Старый 02.06.2009, 08:45   #7
Мне повезёт!
 
Аватар для Alexey
 
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
Alexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущее
По умолчанию

В версиях 5.0 и старше поддерживает точно (в исследовательских целях пользовался).
__________________
Everything will be great in the end.
If it's not great, it's not the end.
Alexey вне форума   Ответить с цитированием
Старый 02.06.2009, 09:19   #8
Новичок
 
Аватар для twilight_dream
 
Регистрация: 19.05.2009
Сообщений: 69
Вес репутации: 183
twilight_dream скоро станет известен
По умолчанию

Цитата:
Сообщение от derbauer Посмотреть сообщение
1. select count(*) from messages where date > (select date from messages where from=id1 order by date limit 1)

2. select count(*) from messages where to=id1 and from=id2 and date>(select date from messages where from=id1 order by date limit 1)

как обойтись без вложенного запроса - не представляю.
Да это неправильная постановка задачи. Пусть флаг ставит.
twilight_dream вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно составить текст ссылки? mregor Вопросы от новичков 14 24.03.2011 16:58
ВЧ запрос BossIT Общие вопросы оптимизации 4 02.06.2009 17:21
Составить условие по дате avgaz Разработка и сопровождение сайтов 4 12.03.2009 16:10
Нужно составить sitemaps по имеющимся страницам lipsko Яндекс 10 28.06.2008 23:47
Как правильно составить ссылку marker Яндекс 15 24.04.2008 02:43


Часовой пояс GMT +3, время: 16:13.