gpt4 book ai didi

sql - SELECT WHERE 相关记录的值没有出现

转载 作者:行者123 更新时间:2023-12-02 08:11:07 24 4
gpt4 key购买 nike

我有一个Client 表和一个Devices 表。

一个客户端可以有多个设备,一个客户端和设备一样都处于事件状态。

我想要所有处于事件状态但没有事件设备的客户端。

我INNER JOINED 客户端上的设备为所有事件客户端,因此客户端不止一次出现,但现在我不知道如何选择所有没有事件设备的客户端。

我的关系是这样建立的:

客户:

pkClientID   Name     IsActive
------------------------------
1 Jake 1
2 Philip 1

设备

pkDeviceID  fkClientID  DeviceName  IsActive
---------------------------------------------
1 1 Samsung 1
2 1 Apple 0
3 2 Samsung 0
4 2 Sony 0

既然我已经拥有所有活跃的客户,我该如何只选择 Philip,因为他活跃但没有活跃的设备?

最佳答案

使用 not exists() :

select *
from client c
where c.isactive = 1
and not exists (
select 1
from device d
where d.fkclientid = c.pkclientid
and d.isactive = 1
)

rextester 演示:http://rextester.com/NCR78612

返回:

+------------+--------+----------+
| pkClientid | Name | IsActive |
+------------+--------+----------+
| 2 | Philip | 1 |
+------------+--------+----------+

关于sql - SELECT WHERE 相关记录的值没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46954294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com