问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请大家帮我看一下这个SQL查询为什么是这样写的:“查询至少购买了01号客户购买的所有产品的客户号”?

发布网友 发布时间:2022-05-23 05:34

我来回答

2个回答

热心网友 时间:2023-10-14 13:24

not exists 的意思是为假成立 

举例说明:

(创建测试表及数据)

create table dbo.客户产品

(

客户号 varchar(1),

产品号 varchar(4)

)

insert into dbo.客户产品

values

(1,1001),

(1,1002),

(1,2001),

(2,1001),

(2,1002),

(2,1003),

(2,2001),

(2,2002),

(3,1005),

(4,2001)

查询代码分析:

select 客户号

from dbo.客户产品 客户产品1

where not exists

(select * from dbo.客户产品 客户产品2

 where 客户产品2.客户号='1'and not exists

 (select * from dbo.客户产品 客户产品3

  where 客户产品3.客户号='1'--客户产品1.客户号

   and 客户产品3.产品号=客户产品2.产品号))

当客户号='1'时,

select * from dbo.客户产品 客户产品2

 where 客户产品2.客户号='1'and not exists

 (select * from dbo.客户产品 客户产品3

  where 客户产品3.客户号='1'--客户产品1.客户号

   and 客户产品3.产品号=客户产品2.产品号)

的结果为:(没有记录,结果为假,成立)

客户号  产品号

---- ----

(0 行受影响)

当客户号='2'时,

select * from dbo.客户产品 客户产品2

 where 客户产品2.客户号='1'and not exists

 (select * from dbo.客户产品 客户产品3

  where 客户产品3.客户号='2'--客户产品1.客户号

   and 客户产品3.产品号=客户产品2.产品号)

的结果为:(没有记录,结果为假,成立)

客户号  产品号

---- ----

(0 行受影响)

当客户号='3'时,

select * from dbo.客户产品 客户产品2

 where 客户产品2.客户号='1'and not exists

 (select * from dbo.客户产品 客户产品3

  where 客户产品3.客户号='3'--客户产品1.客户号

   and 客户产品3.产品号=客户产品2.产品号)

的结果为:(有3行记录,结果为真,不成立)

客户号  产品号

---- ----

1    1001

1    1002

1    2001

(3 行受影响)

当客户号='4'时,

select * from dbo.客户产品 客户产品2

 where 客户产品2.客户号='1'and not exists

 (select * from dbo.客户产品 客户产品3

  where 客户产品3.客户号='4'--客户产品1.客户号

   and 客户产品3.产品号=客户产品2.产品号)

的结果为:(有2行记录,结果为真,不成立)

客户号  产品号

---- ----

1    1001

1    1002

(2 行受影响)

热心网友 时间:2023-10-14 13:25

等待高手回答,关注学习
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
儿童散学归来早描述的是什么季节(儿童散学归来早描写的是什么季节) 超级死神进化论章节目录 我们没有忘记读后感458字作文 贷15万贷10年每月还多少钱 15万10年贷款月供多少 15万贷10年月供多少钱 15万贷款10年一月多少钱 贷款15万10年每月还多少 在银行贷款15万十年还清想知道利息和月供……(还望亲们提供的的2013年... 今天去刷qq空间 看到了一个同学的头像 说明他发了说说 可是怎么刷新... *防伪开票系统中在客户编码设置里面怎样快速的查询到要找到的客户资料呢? Oracle A表有商品的编号,商品的名称,B表有客户,购买的商品编号,请用sql查询每个客户购买的商品名称 如何用sql语言写出最近没购买过商品的用户的代码 SQL查询一件都没有销售出去的产品的编号,名称和价格 SQL查询没购买过商品的客户信息 我有一个了,还想再申请一个微信账号,怎么申请呢? 怎样注册多个 泰国几月份去旅游是最佳时间 泰国适合什么时候去?几月份去最好? 哪几个月是泰国旅游季节? 怎么注册 怎样才能注册一个新的- 问一问 没有了,微信钱包里的钱怎么找回来? 嘀嗒和哈啰一天算8单吗? 重新注册了,旧微信里的零钱怎样找回? 现在什么跑车平台单子多 女人说“谢谢”,高情商的男人这样回答,轻松赢得她的心 注册一个新的怎么注册 女人对你说谢谢的时候,高情商的男人这样回答就能赢得女人心 女人说“谢谢”时,高情商男人的回复方式,让女人念念不忘 坦克世界怎么改名修改昵称账号名字方法 写一个SQL语句查询结果:年份,月份,顾客名,每个月顾客所购买商品金额总和,按照日期顾客号排序 SQL查询northwind中购买了所有类别商品的客户 查询销售表中没有的商品信息是什么意思? oracle 坦克世界 怎么改名 坦克世界怎么改名字??? 坦克世界改名 手机WiFi为什么直接连上了?跳过了输密码这一步? 为什么葵花控制的联想笔记本连wifi不用输入密码就连上了 弱弱的问一句,话说坦克世界闪电战怎么改名 坦克世界怎么改名? 坦克世界怎么更改注册号 我的新手机连家里wifi不用密码,为什么就直接连上了? 电脑连wifi,为什么点了解,还没输入密码,它就自动连去了,主要连不上 家里的WiFi收到信号后却没有锁的标志,用手机不输入密码一下就连接上了,但不能用,是怎么回事? 为啥手机不用密码就连上WIFI电脑却要密码呢 别人的WIFI我没输密码就进去了这是为什么,能上网的 手机输入WiFi密码了可以用,第二天手机没记住密码咋多在不输入密码的情况下连上WiFi 大神求 我家的wifi是设置了密码的,为什么一个从来没有来过我家的朋友他的手机不用输入密码就自动连上了?? 怎样知道你好友的有没有被盗