sql—如何组合两个字段并相应地标记它们

mbzjlibv  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(373)

我想知道如何标记没有购买由两个字段(产品名称和产品编号)描述的某些项目的客户。我能够为购买它们的客户执行此查询,但不是相反。提前感谢您的帮助!
这是我的sql查询的一部分。

Select customer_id, product_name, product_number
from table 
where 
((PRODUCT_NAME = 'LIAM' AND PRODUCT_NUMBER = '212') OR
 (PRODUCT_NAME = 'ARRAY' AND PRODUCT_NUMBER = '325') 
)

举个例子:

1 LIAM 212

1 STACY 452

1 NEIL 789

1 LIAM 345

2 ROSE 234

2 LIAM 345

2 ARRAY 325

3 STACY 452 

3 ARRAY 625

查询结果:

1 ARRAY 325

2 LIAM 212

3 ARRAY 325

3 LIAM 212
erhoui1w

erhoui1w1#

你好像想要 not exists :

select t.*
from table t
where not exists (select 1 
                  from table t1 
                  where t1.customer_id = t.customer_id and 
                        t1.PRODUCT_NAME in ('LIAM', 'ARRAY')
                 );

我不认为两者兼用有什么好处 Product_name 以及 Product_numberwhere 子句,如果它们在表中定义为唯一的。
这样,您将得到从未购买过的客户 liam 或者 array 产品。

相关问题