Laravel SQL关系

问题描述

我的桌子看起来像这样

enter image description here

我有几个设备。例如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的示例。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...