SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 18.01.2012 13:07:10

Greza
Участник
Зарегистрирован: 18.01.2012
Сообщений: 2

Как не использовать LIMIT

Есть запрос

SELECT productID, date_added FROM `products` WHERE date_added IN (SELECT DISTINCT date_added FROM `products` LIMIT 3) ORDER BY date_added DESC

но он не работает потому что

This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

помогите решить проблему, пожалуйста.
Собственно говоря задача выбрать все товары добавленные за последнии 3 дня и вывести их в порядке отдаления даты
то есть сначала все товары за 18/01 потом за 17/01 потом за 16/01 и так каждый новый день новые три даты.

Отредактированно Greza (18.01.2012 13:08:57)

Неактивен

 

#2 18.01.2012 15:43:56

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Как не использовать LIMIT

Чтобы не ругалась на LIMIT, надо запихнуть в подзапрос:


SELECT productID, date_added
FROM `products`
WHERE date_added IN (
 SELECT * FROM (
  SELECT DISTINCT date_added
  FROM `products` LIMIT 3
 ) AS sub
)
ORDER BY date_added DESC
 

Неактивен

 

#3 18.01.2012 16:02:24

Greza
Участник
Зарегистрирован: 18.01.2012
Сообщений: 2

Re: Как не использовать LIMIT

SELECT productID, date_added
FROM `products`
WHERE date_added
IN (

SELECT *
FROM (

SELECT DISTINCT date_added
FROM `products`
ORDER BY date_added DESC
LIMIT 3
) AS sub
)
ORDER BY date_added DESC
 


Спасибо огроменное
немного подправил и получил последние даты, до этого выводились 3 первые даты

Неактивен

 

Board footer

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