【发布时间】:2017-12-10 10:59:54
【问题描述】:
我有两张桌子。配置和数据。配置表包含定义我所说的“预定义点”的信息。这些列是 configId、machineId、iotype、ioid、subfield 和 predeftype。我有第二个表,其中包含由 configId 链接的配置表中所有项目的所有数据。数据表包含configId、timestamp、value。
我试图从配置表中返回每一行,结果中包含 2 个新列,这将是该特定预定义点的最小时间戳和该特定预定义点的最大时间戳。
伪代码是
select a.*, min(b.timestamp), max(b.timestamp) from TrendConfig a join TrendData b on a.configId = b.configId where configId = (select configId from TrendConfig)
子查询将返回多个值。
知道如何制定这个吗?
【问题讨论】:
-
请向我们展示表格结构,以便给出准确的答案。这很可能可以通过连接或相关子查询来完成。
-
听起来你在谈论加入-w3schools.com/sql/sql_join.asp
-
蒂姆,我附上了结构的图像。
-
杰夫,确实,但我最大的问题是如何从配置表中获取所有项目并获取每个项目的最小/最大时间戳,这对我来说是困难的部分。假设配置中有 2 个项目(configId = 1,configId = 2)。我需要从 Config 中获取所有行,其中 configId = 1 和 min(timestamp) 的新列,其中 configId = 1 和 max(timestamp),其中 configId = 1,然后在第二行再次获取 configId = 2 的新列。
-
您希望每个值都有一个输出行吗?听起来像 GROUP BY。
标签: sqlite