2014-09-03 5 views
0

Я новичок в немного более продвинутой MySQL и хотел бы узнать, как правильно все делать с такими запросами.MySQL: Простой подзапрос

У меня есть две таблицы: датчики и измерительные_данные
Каждая строка датчиков имеет идентификатор, и каждая строка measure_data ссылается на одну из этих идентификаторов датчика.

Что мне нужно сделать, это получить датчики
(SELECT ID FROM датчиков)
, а затем получить последние 5 measurement_data строки для каждого датчика
(SELECT Val FROM measurement_data WHERE sensor_id = Датчик идентификатора ORDER BY временной метки DESC LIMIT 5)

результат должен выглядеть примерно следующим: JSON

{ 
    "SENSOR01": [ 
     "10","11","12","13","14" 
    ], 
    "SENSOR02": [ 
     "10","11","12","13","14" 
    ] 
} 

Я попытался посмотреть на некоторые примеры идут ogle нашел для меня, но все они были либо слишком сложными, либо, по крайней мере, я их не получил.
Я также пытался играть с подзапросами на основе документации, но не понял, как это сделать.
Не мог бы кто-нибудь помочь мне правильно разобраться с этим?

Приветствия

+0

Это не простой подзапрос, но проблема с max-n-per-id – VMai

+0

Посмотрите http://www.xaprb.com/blog/2006/ 12/07 /, как к выбрать-The-firstleastmax-строка-за-группы-в-SQL / – VMai

ответ

0

Вы можете получить все значения, используя следующий запрос, но не уверен, как ограничить их 5

SELECT, датчики. *, GROUP_CONCAT (measurement.id SEPARATOR '') от датчиков, measurement_data WHERE sensor.sensor_id = measure.sensor_id group by sensor_id