问题描述
我的桌子看起来像这样
我有几个设备。例如device1,device2,device3等。 每个设备都包含一个套件。每个活动的Kit的属性active = 1
例如,我在Kit1中首先拥有device1和device2。然后device1和device2进入Kit2。我将Kit1设置为active = 0,而Kit2的active =1。然后我从Kit2中“删除” device1和device2。 (它将仍然在devicekit中)。我只将Kit2设置为active = 0。
这是我的问题。我想列出所有不在套件中的设备。因此,如果我左连接Devicekit和Kit,我想检查一下所有Kit是否都处于活动状态= 0。
我尝试了类似SUM(kit.active) as activesum
的操作,如果activesum
为0,则该设备不再使用任何工具包。但这不起作用。
解决方法
如果我正确理解了您的问题,则认为您正在采取以下措施:
select * from device d
where id not in (select id_device
from devicekit dk
join kit k on dk.id_kit = k.id
where k.active = 1)
这将列出不在任何有效套件中的设备。您可以尝试创建一个here的示例。