|
|
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
Добрый вечер, есть табличка messages: id|sender|receiver|date|msg| необходимо выбрать последние сообщения в беседах юзера A ( sender= A) то есть 1| A| B| 2008..| hello| 2| A| B| 2007..| bye | 3| A| C| 2008..| hi | должно вывести 1 и 3 строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 00:13:34 |
|
||
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 00:19:10 |
|
||
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
javajdbcunknown21, 7543220 спасибо большое , пока получилось следующее Код: sql 1. 2. 3. что выдает только одну строку, но если модифицировать запрос ,и сделать join только по дате все работает Код: sql 1. 2. 3. возник вопрос а корректно ли делать join по дате, ничего если она будет не уникальна?(в примере кстати такая же ситуация join по score) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 01:16:05 |
|
||
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
хмм .. как вариант заметил что можно использовать вместо max(date) - max(id) и join по нему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 01:22:35 |
|
||
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
дополнение к задаче необходимо выбрать последние сообщения в беседах юзера A ( sender= A or receiver =A ) предполгагаю что нужно делать два джойна( или условный group by), но пока не могу понять как их потом обьеденить так не выходит : Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2013, 01:21:39 |
|
||
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
javajdbcunknown21, 7543220 Не совсем точная ссылка — там обсуждается поиск максимумов для каждого пользователя, а здесь требуются максимумы для одного конкретного пользователя, что значительно проще Код: sql 1. 2. 3. 4. 5. Или, если нужны поледние отосланное и полученное сообщения, Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2013, 10:37:37 |
|
||
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
Cygapb-007javajdbcunknown21, 7543220 Не совсем точная ссылка — там обсуждается поиск максимумов для каждого пользователя, а здесь требуются максимумы для одного конкретного пользователя, что значительно проще[src] select * from messages where '$usr' in (sender,receiver) order by date desc limit 2; .... Конкретно в самом первом посте была задача имено для приведеной ссылке. Там задано найти крайнее сообшения для нескольких бесед заданого юзера с разными абонентами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2013, 19:41:49 |
|
||
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
Cygapb-007.....Или, если нужны поледние отосланное и полученное сообщения, Код: sql 1. 2. 3. 4. 5. 6. 7. опятже, один юзер может имень несколько бесед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2013, 19:43:58 |
|
||
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
Вот неоптимизированый, но функционально верный СКЛ: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2013, 19:54:21 |
|
||
|
Последние сообщения и group by
|
|||
|---|---|---|---|
|
#18+
вот так быдет быстро: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2013, 20:04:21 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38404109&tid=1836004]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 417ms |

| 0 / 0 |
