Лимитирование вывода

zip111

Новичок
Лимитирование вывода

Есть запрос:

SELECT catalogue.category AS cat, mobile.title, mobile.id
FROM mobile
LEFT JOIN catalogue ON mobile.category = catalogue.id
ORDER BY catalogue.category, mobile.title

как сделать так что бы выводились не все существующие в базе mobile данные, а только по 4 на каждое значение базы catalogue?

Спасибо
 

zip111

Новичок
нет, не подойдет.
Например если добавить group by mobile.category:
[SQl]
SELECT catalogue.category AS cat, mobile.title, mobile.id
FROM mobile
LEFT JOIN catalogue ON mobile.category = catalogue.id
GROUP BY mobile.category
ORDER BY catalogue.category, mobile.title
LIMIT 0 , 30
[/SQl]
то получается примерно то, что надо только выводит не по 4-е значения, а по 1-му...

-~{}~ 19.03.07 15:08:

Ну так есть у кого какие предложения?
 

chira

Новичок
zip111

попробуй с использованием переменных:
Код:
set @aa=0;
SELECT if(@aa<>catalogue.c_id,@cn:=1,@cn:=@cn+1) cn
, @aa:=catalogue.id c_id
,catalogue.category AS cat, mobile.title, mobile.id
FROM mobile
INNER JOIN catalogue ON mobile.category = catalogue.id
HAVING cn<=4
ORDER BY catalogue.category, mobile.title
LIMIT 0 , 30
;
 

zip111

Новичок
Странно, в PHPMyAdmin все сработало, а в скрипте

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; SELECT if(@aa<>catalogue.id,@cn:=1,@cn:=@cn+1) cn , @aa:=catalogue.id id ,cata' at line 1
 

chira

Новичок
zip111
в моём коде два запроса
SET ...
SELECT ...
их нужно выполнять по отдельности
 

zip111

Новичок
спасибо

-~{}~ 06.09.07 22:50:

Этим запросом выводится по 4 записи таблицы catalogue где mobile.category = catalogue.id, однако эти 4 записи являются первыми в списке. А как сделать что бы выводились по последним ID четыре записи.

Если делаю ORDER BY catalogue.category ASC, mobile.title DESC, то сортируются те же 4 записи которые и выводились.

-~{}~ 06.09.07 22:51:

то есть ORDER BY catalogue.category ASC, mobile.id DESC

-~{}~ 17.09.07 14:43:

так что, есть какая-нибуть возможность?
 

zip111

Новичок
а чем тебе не нравится вариант с ORDER BY ... mobile.id DESC
Этим запросом выводится по 4 записи таблицы catalogue где mobile.category = catalogue.id, однако эти 4 записи являются первыми добавленными ID. А как сделать что бы выводились по последним добавленным ID четыре записи.
 
Сверху