1

我有 EXPERIMENTAL_RUNS (runId),每个都有与它们关联的任意数量的 SENSORS (sensorId)。考虑到这一点,我有一个 RS 表来连接两者:

==========
RS
==========
runId, sensorId

因此,如果 runId=1 的运行中包含 sensorId=1、sensorId=6、sensorId=8 的传感器,则 RS 表中将有 3 个条目: (runId=1, sensorId=1) (runId=1, sensorId =6) (runId=1, sensorId=8)

这真的是我返回所有具有传感器 {11,13,15} 的 EXPERIMENTAL_RUNS 的方式吗?从我读过的内容来看,我似乎想要的是一个嵌套的哈希连接......这会发生什么吗?

SELECT a.runId
FROM rs a, rs b, rs c
WHERE
a.runId=b.runId AND
b.runId=c.runId AND
a.sensorId=11 AND
a.sensorId=13 AND
b.sensorId=15

为了澄清,我只想返回具有传感器 11 和 13 和 15 的 EXPERIMENTAL_RUNS。

4

1 回答 1

3

假设runId, sensorId在表中是唯一的rs,这将找到runId具有全部 3 个sensorIds 的 s:

SELECT runId, COUNT(c) ct
FROM rs
WHERE sensorId IN (11, 13, 15)
GROUP BY runId
HAVING ct = 3
于 2012-12-15T07:29:36.103 回答