MySQL:简单的子查询

时间:2014-09-03 19:36:24

标签: mysql subquery

我是一个更高级的MySQL新手,想学习如何正确处理以下查询。

我有两个表:sensors和measurement_data
每个传感器行都有一个id,每个measurement_data行链接到其中一个传感器ID。

我需要做的是获取传感器 (SELECT id FROM sensors)
然后为每个传感器获取最后5个measurement_data行 (SELECT val FROM measurement_data WHERE sensor_id = sensor id ORDER BY timestamp DESC LIMIT 5)

结果应该类似于json:

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

我试着看看谷歌为我找到的一些例子,但它们都太复杂了,或者至少我没有得到它们。
我也试图根据文档使用子查询,但不明白如何做到这一点 有人可以帮助我找到正确的轨道吗?

干杯

1 个答案:

答案 0 :(得分:0)

您可以使用以下查询获取所有值,但不确定如何将它们限制为5

SELECT sensors。*,GROUP_CONCAT(measurement.id SEPARATOR',')FROM sensors,measurement_data WHERE sensors.sensor_id = measurement.sensor_id group by sensor_id