SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 15.02.2013 09:01:25

Hasan
Участник
Зарегистрирован: 15.02.2013
Сообщений: 4

GROUP BY ORDER BY

здавствуйте...у меня есть табличка mesajjes, пользователи смогут отправлять другдругу сообщения..только одна проблема с реализацией блока входящие где должны выводится последние сообщения других пользователе к тому кто зашёл на сайт
Вот код:
$allsm=mysql_query("SELECT * from(SELECT * from mesajjes AS some_alias WHERE mto=$_SESSION[uid] ORDER BY mid ) AS `some_table` GROUP BY mfr ");
while($allsmi=mysql_fetch_array($allsm))
{}


здесь mfr это ид того кто послал сообщение
mto - кому послано сообщение
mid - идентификатор сообщения


Проблема в том, что материалы должны группироваться по mfr,но при после группировнии должен выводится в списке последний материал имеющий одинаковый mfr

разясняю


1собщ  mfr=1 mid=1
2собщ mfr=1 mid=2
3собщ mfr=3 mid=3
4собщ mfr=2 mid=4


по моему коду выводится:

1собщ  mfr=1 mid=1
3собщ mfr=3 mid=3
4собщ mfr=2 mid=4



хочу чтобы вывелось:
2собщ mfr=1 mid=2
3собщ mfr=3 mid=3
4собщ mfr=2 mid=4

когда ставлю в коде  после ORDER BY mid      это:DESC

выводит:
4собщ mfr=2 mid=4
3собщ mfr=3 mid=3


Думаю разьяснил всё от и до.



Комментарий модератора.
Ваш вопрос подробнейшим образом рассмотрен в статье Группировка в MySQL

Неактивен

 

#2 15.02.2013 09:27:18

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: GROUP BY ORDER BY

FAQ №16

Неактивен

 

#3 15.02.2013 09:36:58

Hasan
Участник
Зарегистрирован: 15.02.2013
Сообщений: 4

Re: GROUP BY ORDER BY

ну я же всё разьяснил...и прошу просто дать мне конкретный код

Неактивен

 

#4 15.02.2013 09:41:19

Hasan
Участник
Зарегистрирован: 15.02.2013
Сообщений: 4

Re: GROUP BY ORDER BY

до меня уже не доходит то что написано в ФАГ  копаюсь всю ночь в инете и все только и знают как давать ссылку на фаг или статьюю какуюто...вот именно поэтому я разьяснил ситуацию от и до   если мне нужна былабы статья или фаг то в гугл прбил бы!

Неактивен

 

#5 15.02.2013 10:02:00

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: GROUP BY ORDER BY

SELECT mfr, max(mid) from mesajjes WHERE mto=$_SESSION[uid] GROUP BY mfr;

Неактивен

 

#6 15.02.2013 10:39:50

Hasan
Участник
Зарегистрирован: 15.02.2013
Сообщений: 4

Re: GROUP BY ORDER BY

vasya написал:

SELECT mfr, max(mid) from mesajjes WHERE mto=$_SESSION[uid] GROUP BY mfr;

выводит тоже самое что и мой код....тоесть первое из группы  а мне нужно последнее   тоесть здесь max как будто и не действует

Неактивен

 

#7 15.02.2013 12:15:44

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: GROUP BY ORDER BY

MariaDB [test]> create table test (mfr int, mid int, mto int);
Query OK, 0 rows affected (0.16 sec)

MariaDB [test]> insert into test values(1,1,1), (1,2,1),(3,3,1),(2,4,1);
Query OK, 4 rows affected (0.08 sec)
Records: 4  Duplicates: 0  Warnings: 0

MariaDB [test]> SELECT mfr, max(mid) from test WHERE mto=1 GROUP BY mfr;
+------+----------+
| mfr  | max(mid) |
+------+----------+
|    1 |        2 |
|    2 |        4 |
|    3 |        3 |
+------+----------+
3 rows in set (0.03 sec)
 

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson