相关疑难解决方法(0)

SQL Server查询多对多关系

我的SQL服务器中有以下多对多关系(见下图).

多对多的关系

在大多数情况下,表tblWavelengths中有2行与表tblSensors相关,(在某些情况下只有1行,在极端情况下可能有20行)

我做了以下简单查询来从这3个表中检索数据:

select W.DateTimeID,S.SensorName,S.SensorType,W.Channel,W.PeakNr,W.Wavelength
from tblWavelengths as W
    Left Join tblSensorWavelengths as SW on W.tblWavelengthID = SW.WavelengthID
    Left Join tblSensors as S on SW.SensorID = S.SensorID
order by W.DateTimeID
Run Code Online (Sandbox Code Playgroud)

运行此查询后,我得到以下结果:

结果

这是我的问题.我想写一个查询,它只过滤那些在给定时刻(DateTimeID)在tblWavelengths表中有两行(两个不同波长)的传感器(SensorName).因此,例如,我希望得到没有77902/001传感器的结果 - 因为它在给定的时刻只有一行(一个波长)与tblSensors相关

sql sql-server many-to-many

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

many-to-many ×1

sql ×1

sql-server ×1