кривой запрос group by order by

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

кривой запрос group by order by

Непрочитанное сообщение ProFTP » 2010-03-08 5:48:20

из этой темы http://forum.lissyara.su/viewtopic.php?f=11&t=23381 еще один запрос

есть таблица

Код: Выделить всё

table1_users

id, username, blog_name

Код: Выделить всё

-----
table2_blog

id_bl,  id_un, name, created
мне нужно вывести все последние записи с table2_blog с конретного пользователя блога, понятно?

т.е. прост овыести последние записи и чтобы поледние записи ыли уникальные по пользователю... как это сделать


такой запрос работает, но выводит только наоборот с начала, только первые уникальные записи (group by группирует только с начала , а не нужно конечное)

Код: Выделить всё

SELECT t1.id_bl,
                                          t1.id_un,
                                          t1.name,
                                         t1.created,
                                          t1.view,
                            
                                      t2.username,
                                         t2.blog_look,
                                         t2.blog_forb_rw_g_cm, 
                                          t2.blog_name,
                                          t2.blog_count,     
                              
                               FROM blog AS t1

                          
                                   INNER JOIN users AS t2
                                   ON t1.id_un = t2.id                                                                 
                                
                           WHERE t2.blog_look = 0  

                          group by t1.id_un

                          ORDER BY t1.created desc

                           LIMIT ?,?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: кривой запрос group by order by

Непрочитанное сообщение ProFTP » 2010-03-09 10:04:12

мне подсказали так (не знал)

Код: Выделить всё

SELECT * FROM (
SELECT t1.id_bl, t1.id_un, t1.name, t1.created, t1.view,
t2.username, t2.blog_look, t2.blog_forb_rw_g_cm, t2.blog_name, t2.blog_count
FROM blog AS t1
INNER JOIN users AS t2 ON t1.id_un = t2.id
WHERE t2.blog_look = 1
ORDER BY t1.created desc
) `a`
GROUP BY id_un
ORDER BY created desc
LIMIT ?,? 
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение