2014-09-03 146 views
0

我是一個更高級的MySQL新手,想要學習如何正確處理下列查詢。MySQL:簡單的子查詢

我有兩個表:傳感器和measurement_data
每個傳感器行都有一個ID,每個measurement_data行鏈接到其中一個傳感器ID。

我需要做的就是傳感器
(SELECT ID FROM傳感器)
然後拿到最後5個measurement_data行對每個傳感器
(SELECT VAL FROM measurement_data WHERE sensor_id = 傳感器ID ORDER BY的時間戳降序LIMIT 5)

結果應該看起來像以下JSON:

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

我想看看一些例子去ogle發現了我,但他們都是太複雜或至少我沒有得到他們。
我也嘗試玩基於文檔的子查詢,但不知道如何做到這一點。
有人可以幫助我走上正軌嗎?

乾杯

+0

這不是一個簡單的子查詢,但它是最大每n個問題 – VMai 2014-09-03 19:42:48

+0

看看http://www.xaprb.com/blog/2006/ 12月7日/如何對選擇最firstleastmax排每組合SQL / – VMai 2014-09-03 19:45:42

回答

0

您可以獲取使用下面的查詢所有的值,但不知道如何將它們限制在5個

SELECT傳感器。*,GROUP_CONCAT(measurement.id分離器 '')來自傳感器,measurement_data WHERE sensors.sensor_id = measurement.sensor_id group by sensor_id