我有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。
答案 0 :(得分:3)
假设runId, sensorId
表中的rs
是唯一的,则会找到包含所有3 runId
s的sensorId
:
SELECT runId, COUNT(c) ct
FROM rs
WHERE sensorId IN (11, 13, 15)
GROUP BY runId
HAVING ct = 3