В MySql LIMITed коррелированный подзапрос применяется к каждой строке внешнего запроса? - PullRequest
1 голос
/ 08 марта 2011

OuterTable содержит дату и тип фрукта.

OuterTable
(
    Day datetime,
    FruitType int
)

OuterTable имеет 8000 строк.

Фрукты содержат ежеминутный подсчет того, сколько фруктов каждого типа было съедено по всему миру.

Fruits
(
    Minute datetime,
    FruitType int,
    NumEaten int
)

Фрукты имеют полмиллиарда строк.

Я хочу отображать поминутные значения «NumEaten» для каждого типа фруктов за последние 900 минут для каждого «крайнего срока» (или как вы хотите это называть), присутствующего в OuterTable.

Я пытаюсь выполнить следующий запрос:

SELECT f.Minute, f.fruitType, f.numEaten

для каждой записи в таблице OuterTable,

к которому я хочу применить коррелированный подзапрос:

(
    SELECT f.Minute, f.fruitType, f.numEaten FROM Fruits As f
    WHERE f.fruitType = OuterTable.fruitType
    AND f.Minute < OuterTable.Day
    ORDER BY f.Minute DESC LIMIT 900;
)

Есть ли способ сделать это без курсора?

...