Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2011, 21:57   #1
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию MySQL выбрать все сообщения после моего

есть БД фоток и комментариев к ним,

примерная структура:

id
id_cat - идентификатор фотоки к которой камент
id_autor - идентиф автора сообщений
date - дата сообщений
comment - сам комент

нужно запросом выбрать все каменты, которые были после всех моих последних каментов

то есть,
фотка 1
камент 1
камент2
!мой камент
камент 3
камент 4

должен выводить камент 3 и камент 4....

а если
фотка 1
камент 1
!мой камент
камент2
камент 3
!мой камент
камент 4

должен вывести только камент 4.....


причем вывести все эти каментд для всех фоток (где были мои каменты)
ADSoft вне форума Ответить с цитированием
Старый 28.02.2011, 23:37   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

в MySQL не силен, а в MS SQL сделал бы примерно так
Код:
SELECT A1.*
  FROM таблица AS A1
  WHERE A1.id_autor<>Мой_id AND
        A1.date>(SELECT MAX(A2.date)
                 FROM таблица AS A2
                 WHERE A2.id_autor=Мой_id AND A2.id_cat=A1.id_cat)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.03.2011, 22:44   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

нет, к сожалению не то... (
ADSoft вне форума Ответить с цитированием
Старый 11.03.2011, 13:28   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Абсолютно правильно тебе Аватар написал. Я даже проверил из любопытства
Код:
SELECT *
  FROM AL AS A1
  WHERE A1.id_autor <> 1 AND
  A1.date>(SELECT MAX(A2.date)
  FROM AL AS A2
  WHERE A2.id_autor = 1 AND A2.id_cat = A1.id_cat)
... в запросе мой ID = 1, имя таблицы = AL. Работает как положено.
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отображать все сообщения Windows в Memo? DELPHI RDIce Win Api 1 12.01.2011 13:52
выбрать из строк последние, идущие после ключевой строки SarahConner Microsoft Office Excel 8 29.12.2010 22:42
Перехватить все сообщения (глобальный хук) TwiX Софт 0 11.11.2010 22:45
После установки VS2010 и запуска моего проекта появилась проблема..., Конкретно с WMPLib. Casper-SC Общие вопросы .NET 1 23.05.2010 15:12
Выводится повторное исключение после моего стандартного. prikolist Общие вопросы C/C++ 4 26.03.2009 13:35