[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: sql запрос списка сообщений для соц сети
xworld
есть таблица message, с полями id,sender(кто отправил), reader(кому отправил), message, created. Какой запрос будет получать список контактов (дата последнего сообщения(может быть как входящее так и исходящее) + ид пользователя) заданного пользователя, с которыми он общался, при этом контакты не повторяются. Никак не могу написать запрос.



Спустя 5 минут, 43 секунды (12.12.2011 - 18:14) Игорь_Vasinsky написал(а):
так показывай запрос, будем корректировать wink.gif

Спустя 7 минут, 25 секунд (12.12.2011 - 18:21) xworld написал(а):
не получается у меня его написать:) переработал наверное

Спустя 6 минут, 35 секунд (12.12.2011 - 18:28) dadli написал(а):
xworld
id,sender, reader, message, created
1|марадона|пеле|я силнее чем ти|2011-12-12 19:20:23
2|зидан|платин|ти тоже француз?|2011-12-11 15:30:00


вот приблизително такая таблица тебе да? но я но понимаю какои список ти хочиш получить, последние контакти для какого ползователя?

Спустя 6 минут, 48 секунд (12.12.2011 - 18:34) xworld написал(а):
для заданного идентификатора пользователя

Спустя 26 минут, 43 секунды (12.12.2011 - 19:01) dadli написал(а):
xworld
id,sender, reader, message, created
1|марадона|пеле|я силнее чем ти|2011-12-12 19:20:23
2|зидан|платин|ти тоже француз?|2011-12-13 15:30:00
3|месси|марадона|как ти диего?|2011-12-15 00:30:00
4|роналдо|марадона|привет|2011-12-18 00:30:00


ну я не понял smile.gif вот допустим такая таблица, какои резултат ти хочиш получить например о марадоне?

Спустя 6 минут, 34 секунды (12.12.2011 - 19:08) xworld написал(а):
1|марадона|пеле|я силнее чем ти|2011-12-12 19:20:23
3|месси|марадона|как ти диего?|2011-12-15 00:30:00
4|роналдо|марадона|привет|2011-12-18 00:30:00

Спустя 9 минут, 45 секунд (12.12.2011 - 19:17) dadli написал(а):
SELECT * FROM mytable WHERE sender = 'марадона' OR reader = 'марадона' 


такои резултат можно так получить, ето хотели ?

Спустя 2 минуты, 20 секунд (12.12.2011 - 19:20) dadli написал(а):
message

так називается вашему таблицу и полю в етом таблице, ето нехорошо, переименовите одно из них

Спустя 1 минута, 25 секунд (12.12.2011 - 19:21) xworld написал(а):
да, этот результат вернет список переписок с другими...НО нужно еще с этой выборке убрать повторяющиеся контакты (остается только максимальный по дате создания сообщения), т.е если будет так:

1|марадона|пеле|я силнее чем ти|2011-12-12 19:20:23
3|месси|марадона|как ти диего?|2011-12-15 00:30:00
4|роналдо|марадона|привет|2011-12-18 00:30:00
5|марадонна|роналдо|привет|2011-12-18 00:40:00

запись с ид 4 уберется, т.к дата создания ид 5 ближе чем ид 4

Спустя 52 секунды (12.12.2011 - 19:22) xworld написал(а):
4|роналдо|марадона|привет|2011-12-18 00:30:00
5|марадонна|роналдо|привет|2011-12-18 00:40:00, т.е с этой переписки нужно выбрать ближайший месседж

Спустя 48 минут, 8 секунд (12.12.2011 - 20:10) dadli написал(а):
xworld
кажется понял, так хотите?

SELECT * FROM mytable  WHERE greated IN (
SELECT MAX(greated) FROM
(
SELECT CONCAT(reader,sender) AS un,greated FROM mytable
WHERE reader = 'марадона'
UNION ALL
SELECT
CONCAT(sender,reader) AS un,greated FROM mytable
WHERE sender = 'марадона'
) AS ttt
GROUP BY un
)

Спустя 14 часов, 46 минут, 47 секунд (13.12.2011 - 10:57) xworld написал(а):
Да! спасибо большое!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.