ilal
Новичок
GROUP BY и ORDER BY помогите с запросом и таблицей...
создаётся таблица
CREATE TABLE `messages` (
`id` INT( 16 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
/*данные отправителя*/
`id_coming` INT( 16 ) UNSIGNED NOT NULL ,
`coming_public` INT( 16 ) UNSIGNED NOT NULL ,
/*обращение внимания на объявление*/
`coming_vsf` INT( 8 ) UNSIGNED DEFAULT '0' NOT NULL ,
`coming_works` INT( 8 ) UNSIGNED DEFAULT '0' NOT NULL ,
`coming_announce` INT( 16 ) UNSIGNED DEFAULT '0' NOT NULL ,
/*получатель*/
`id_enterring` INT( 16 ) UNSIGNED NOT NULL ,
`enterring_view` INT( 2 ) UNSIGNED DEFAULT '0' NOT NULL ,
`message` TEXT,
/*группа*/
`gro` VARCHAR( 255 ) NOT NULL,
PRIMARY KEY (`id`),
INDEX (`id_coming`),
INDEX(`coming_public`),
INDEX (`id_enterring`),
INDEX (`enterring_view`),
INDEX (`gro`)
таблица для периписки... пользователи пишут дру-другу ...
`id_coming` -отправитель
`id_enterring`- получатель... тобишь, значения полей меняются...
`gro`- группа-- одно значение для каждой пары общающихся...
`enterring_view`- прочитал-ли получатель сообщение
`coming_public`- дата отправки сообщения
вопрос- как мне можно вывести списком диалоги, не списки всех сообщений, а только "шапку" каждого диалога в которой показать количество сообщений
отсортировав по наличию новых сообщений (выводиться для каждого посетителя отдельно) и по дате?
моск сломал...
-~{}~ 29.04.08 08:55:
пробовал
$query = "SELECT SQL_ * FROM `messages` WHERE `id_coming`='$uu' OR `id_enterring`='$uu' GROUP BY `gro` ORDER BY `enterring_view` LIMIT $start,$limit";
где '$uu' - ид просматривающего посетителя... всё хорошо, вроде, но как определить именно для просматривающего, что у него есть непросмотренные?
-~{}~ 29.04.08 09:20:
мнда... тишина...
-~{}~ 29.04.08 09:53:
сижу- думаю... может, таблицу изменить? блин...
создаётся таблица
CREATE TABLE `messages` (
`id` INT( 16 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
/*данные отправителя*/
`id_coming` INT( 16 ) UNSIGNED NOT NULL ,
`coming_public` INT( 16 ) UNSIGNED NOT NULL ,
/*обращение внимания на объявление*/
`coming_vsf` INT( 8 ) UNSIGNED DEFAULT '0' NOT NULL ,
`coming_works` INT( 8 ) UNSIGNED DEFAULT '0' NOT NULL ,
`coming_announce` INT( 16 ) UNSIGNED DEFAULT '0' NOT NULL ,
/*получатель*/
`id_enterring` INT( 16 ) UNSIGNED NOT NULL ,
`enterring_view` INT( 2 ) UNSIGNED DEFAULT '0' NOT NULL ,
`message` TEXT,
/*группа*/
`gro` VARCHAR( 255 ) NOT NULL,
PRIMARY KEY (`id`),
INDEX (`id_coming`),
INDEX(`coming_public`),
INDEX (`id_enterring`),
INDEX (`enterring_view`),
INDEX (`gro`)
таблица для периписки... пользователи пишут дру-другу ...
`id_coming` -отправитель
`id_enterring`- получатель... тобишь, значения полей меняются...
`gro`- группа-- одно значение для каждой пары общающихся...
`enterring_view`- прочитал-ли получатель сообщение
`coming_public`- дата отправки сообщения
вопрос- как мне можно вывести списком диалоги, не списки всех сообщений, а только "шапку" каждого диалога в которой показать количество сообщений
отсортировав по наличию новых сообщений (выводиться для каждого посетителя отдельно) и по дате?
моск сломал...
-~{}~ 29.04.08 08:55:
пробовал
$query = "SELECT SQL_ * FROM `messages` WHERE `id_coming`='$uu' OR `id_enterring`='$uu' GROUP BY `gro` ORDER BY `enterring_view` LIMIT $start,$limit";
где '$uu' - ид просматривающего посетителя... всё хорошо, вроде, но как определить именно для просматривающего, что у него есть непросмотренные?
-~{}~ 29.04.08 09:20:
мнда... тишина...
-~{}~ 29.04.08 09:53:
сижу- думаю... может, таблицу изменить? блин...