选择至少有一个功能列表的所有行
问题描述:
我有EXPERIMENTAL_RUNS(runId),其中每个都有任何数量的与其关联的传感器(sensorId)。考虑到这一点,我有一个RS表加入二:选择至少有一个功能列表的所有行
==========
RS
==========
runId, sensorId
因此,如果与运行的runid = 1曾与sensorId = 1,sensorId = 6,sensorId = 8在它的传感器,将有3项在RS表: (指定runid = 1,sensorId = 1) (指定runid = 1,sensorId = 6) (指定runid = 1,sensorId = 8)
这真的是我怎么会返回所有EXPERIMENTAL_RUNS有传感器{11,13,15}?从我读过的内容来看,我似乎想要的是一个嵌套的哈希连接...这是会发生什么?
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
答
假设runId, sensorId
是唯一在rs
表,这会发现runId
S作所有3 sensorId
的EXPERIMENTAL_RUNS s:
SELECT runId, COUNT(c) ct
FROM rs
WHERE sensorId IN (11, 13, 15)
GROUP BY runId
HAVING ct = 3
MySQL没有散列连接。但是你发布的查询应该会给你你想要的结果。 –