|
MySQL.RU - Webboard
Вернуться
как подружить limit и subquery ? (Ratibor Redoran) 14/11/2009 - 02:36:50
From: Ratibor Redoran - 14/11/2009 - 02:36:50
Subject:как подружить limit и subquery ?
-----------------
Имеется таблица T с полями: id, date, price.
Нужно получить выборку, чтобы для каждого id были выбраны записи с последними двумя датами, т.е. если у нас имеется:
id data price
1 2009-11-10 11.8
1 2009-11-08 2.5
1 2009-10-22 116.4
2 2009-11-03 5.6
2 2009-11-01 11.0
2 2009-10-30 25.2
2 2009-10-29 1.1
То результат должен быть такой:
id data price
1 2009-11-10 11.8
1 2009-11-08 2.5
2 2009-11-03 5.6
2 2009-11-01 11.0
Казалось бы, самый простой вариант:
SELECT A.*
FROM T A
WHERE (A.id, A.data) IN
(SELECT B.id, B.data
FROM T B
WHERE A.id = B.id
ORDER BY B.data DESC
LIMIT 2)
должен решить задачу. Ан нет. Система пишет, что LIMIT нельзя применять в подзапросах (MySQL 5.0.18)
Следующий вариант:
SELECT A.*
FROM T A
JOIN (SELECT B.id, B.data FROM T B WHERE A.id = B.id LIMIT 2) B ON A.id = B.id AND A.Day = B.Day
тоже не прошёл: система не понимает, откуда взялся A.id внутри JOIN SELECT.
Вопрос простой: как быть? Думаю, что многие сталкивались с подобной задачей. Помогите её решить.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
36446
|
|