Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ORDER BY и group by как? / 15 сообщений из 15, страница 1 из 1
20.07.2013, 20:12:49
    #38337969
valentins1982
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
"SELECT DISTINCT * FROM pms WHERE id_get='$i' and del_id<>'$i' or id_send='$i' and del_id<>'$i' group by `id_get` + `id_send` ORDER BY `id` DESC"
Как можно заставить работать ORDER BY или оптимизировать мой запрос?
...
Рейтинг: 0 / 0
20.07.2013, 23:02:17
    #38338001
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
valentins1982"SELECT DISTINCT * FROM pms WHERE id_get='$i' and del_id<>'$i' or id_send='$i' and del_id<>'$i' group by `id_get` + `id_send` ORDER BY `id` DESC"
Как можно заставить работать ORDER BY или оптимизировать мой запрос?
а он чё - "не работает" ?
как заметил, что "не работает" ? - за пивом не ходит ?
...
Рейтинг: 0 / 0
20.07.2013, 23:12:33
    #38338003
valentins1982
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
qwerty112, :D Не сортирует точнее )
...
Рейтинг: 0 / 0
20.07.2013, 23:18:46
    #38338008
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
valentins1982qwerty112, :D Не сортирует точнее )
не верю, всё он "сортирует",
просто понимание слова "сортирует" у тебя не совпадает с "традиционным"

вообщем,
если коротко - лепиш ты, что-то из категории "выборка первой/последней записи в группе" - в местном ФАКе есть, ходи читай,
если не коротко, то тут читай п.6, и возвращайся
...
Рейтинг: 0 / 0
20.07.2013, 23:42:44
    #38338017
valentins1982
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
qwerty112,
Смотри, это система сообщений,

CREATE TABLE IF NOT EXISTS `pms` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_get` int(11) NOT NULL,
`id_send` int(11) NOT NULL,
`text` text CHARACTER SET utf8 NOT NULL,
`data` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`del_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
)

, Я группирую, чтобы не дублировалось, тобишь

к примеру
id = 1
id_get = 1
id_send = 2
text = LOLOLO;

id = 1
id_get =2
id_send = 1
text = OLOLO;

Собственно мой запрос должен вывести последнее сообщение из нашего диалога, тобишь "OLOLO";
И всё работает, если каждый раз при добавлении сообщения выполнять, ALTER TABLE `pms` ORDER BY `id` DESC; (но это очень нагрузочно)

Что можно сделать?
...
Рейтинг: 0 / 0
20.07.2013, 23:50:34
    #38338020
valentins1982
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
* id = 2
id_get =2
id_send = 1
text = OLOLO;
...
Рейтинг: 0 / 0
21.07.2013, 00:17:14
    #38338034
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
valentins1982,

знач "рекомендации" - "не дошли" ... :)

ок, вот ответ на твой вопрос
valentins1982Собственно мой запрос должен вывести последнее сообщение из нашего диалога , тобишь "OLOLO";
(del_id - это жж флаг удалённого сообщения ?)
Код: sql
1.
2.
3.
select * from pms 
where del_id=0 and id_get in ($user1,$user2) and id_send in ($user1,$user2)
order by id limit 1


несомневаюсь, что нужно другое...
...
Рейтинг: 0 / 0
21.07.2013, 00:24:54
    #38338036
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
fix
qwerty112
Код: sql
1.
2.
3.
select * from pms 
where del_id=0 and id_get in ($user1,$user2) and id_send in ($user1,$user2)
order by id desc limit 1
...
Рейтинг: 0 / 0
21.07.2013, 15:45:50
    #38338225
valentins1982
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
qwerty112, нет, ты не много не понял мой запрос, каждое последнее сообщения из каждого диалога.

Тобишь,

id = 1
id_get = 1
id_send = 2
text = LOLOLO;

id = 2
id_get =2
id_send = 1
text = Меня выведет;

id = 3
id_get = 1
id_send = 3
text = Меня выведет;


id = 4
id_get = 5
id_send = 1
text = LOLOLO;

id= 5
id_get = 5
id_send = 1
text = Меня выведет;

...
Рейтинг: 0 / 0
21.07.2013, 16:12:25
    #38338240
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
valentins1982qwerty112, нет, ты не много не понял мой запрос, каждое последнее сообщения из каждого диалога.

ойй, даа понял я всё ещё из сабжа
это была [неудачная] попытка заставить ТС, таки, задать вопрос "по людски"

на
можно так (это что бы ты понял как это "работает")
Код: sql
1.
2.
3.
4.
select * 
from pms
where id in
(select max(id) as id from pms group by case when id_get<id_send then id_get else id_send end, case when id_get>id_send then id_get else id_send end) 


лучше - так
Код: sql
1.
2.
3.
4.
5.
select pms.* 
from pms
inner join
(select max(id) as id from pms group by case when id_get<id_send then id_get else id_send end, case when id_get>id_send then id_get else id_send end) a
on pms.id=a.id


+ ещё полдюжины вариантов в ФАКе, до которого ты не дошёл
...
Рейтинг: 0 / 0
21.07.2013, 17:26:53
    #38338279
valentins1982
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
qwerty112, Спасибо дружище всё работает!
Слушай, может, что посоветуешь почитать для начала?
...
Рейтинг: 0 / 0
21.07.2013, 19:04:25
    #38338314
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
valentins1982qwerty112, Спасибо дружище всё работает!
Слушай, может, что посоветуешь почитать для начала? да он издевается, похоже.
...
Рейтинг: 0 / 0
21.07.2013, 19:07:38
    #38338316
valentins1982
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
tanglir, Тонна литературы не знаю с чего начать :)
...
Рейтинг: 0 / 0
21.07.2013, 19:10:17
    #38338318
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
valentins1982,

конкретно по сабжу вам посоветовали прочитать здешний фак по выборке первой/последней записи в группе.
...
Рейтинг: 0 / 0
21.07.2013, 19:11:44
    #38338319
valentins1982
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY и group by как?
tanglir, Спасибо братишка
Пошёл осваивать
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ORDER BY и group by как? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]