Старый 31.05.2004, 09:26   #1   
Форумец
 
Сообщений: 2
Регистрация: 31.05.2004

arekus вне форума Не в сети
не детский запрос MySQL

Есть две таблицы, A и В, примерно такие:
A:
uid(AUTO_INCREMENT) - nickname
1 - Вася
2 - Петя
3 - Лена
...

В:
message_uid(AUTO_INCREMENT) - from_uid - to_uid - message
1 - 1 - 2 - ля-ля
2 - 2 - 2 - тополя
3 - 1 - 3 - bla-bla

Задача - получить одним запросом последний (GREATEST(message_uid)) message для пользователя (to_uid). То есть что-т типа того:
SELECT A.nickname, B.message
FROM A
LEFT JOIN B ON B.to_user_id = A.uid
WHERE message_uid = MAX(message_uid)
GROUP BY A.uid

Заранее благодарен за помощь
  Ответить с цитированием
Старый 31.05.2004, 23:28   #2   
Форумец
 
Аватар для Alex__G
 
Сообщений: 665
Регистрация: 23.04.2002
Возраст: 43

Alex__G вне форума Не в сети
Тяжко без подзапроса .
  Ответить с цитированием
Старый 01.06.2004, 06:28   #3   
Форумец
 
Сообщений: 2
Регистрация: 31.05.2004

arekus вне форума Не в сети
Да, я покамест решаю эту задачу с подзапросом. Но без подзапроса в решении было еще одно подключение таблицы В (AS B1), и в условии WHERE было проставлено, чтобы значение B.message_uid > B1.message_uid OR (B.message_uid IS NULL AND B1.message_uid IS NULL) - но, по ходу, этого условия недостаточно, ибо возникают некоторые неприятные выводы, вернее отсутствие оных (например в случае, если message только один - => вместо > проблему только усугубляют).
В общем, надеюсь, что кто-то все-таки окажется посообразительнее меня и разберется какое тут условие нужно.
(Кстати, в скобках после OR описан случай, когда в В вообще нет message для пользователя)

arekus добавил [date]1086061285[/date]:
В соседнем окне ответ нашелся. Вместо WHERE и всего что ниже написано, досточно поставить
ORDER BY B.message_id DESC
LIMIT 1
И все.
Во истину - истина где-то рядом
  Ответить с цитированием
Поиск в теме: 



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

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind