客户表A
customer
张三
李四
王二麻子
.
.
.
商品表B
goods
商品1
商品2
商品3
商品4
.
.
.
销售表C
customer goods
张三 商品1
张三 商品4
李四 商品2
王二麻子 商品3
王二麻子 商品1
现要查出没有销售过给客户的商品列表
customer goods
. .
. .
. .
------解决方案--------------------
- SQL code
select * from 商品表B b where not exists (select 1 from 销售表C c where b.goods=c.goods)
------解决方案--------------------
- SQL code
CREATE TABLE 客户表A( customer VARCHAR(10) ) INSERT INTO 客户表ASELECT '张三' UNIONSELECT '李四' UNIONSELECT '王二麻子'CREATE TABLE 商品表B( goods VARCHAR(10) ) INSERT INTO 商品表BSELECT '商品1' UNIONSELECT '商品2' UNIONSELECT '商品3' UNIONSELECT '商品4'CREATE TABLE 销售表C( customer VARCHAR(10), goods VARCHAR(10) ) INSERT INTO 销售表CSELECT '张三', '商品1' UNIONSELECT '张三', '商品4' UNIONSELECT '李四', '商品2' UNIONSELECT '王二麻子', '商品3' UNIONSELECT '王二麻子', '商品1'SELECT A.customer,B.goodsFROM 客户表A AS A,商品表B AS BWHERE goods NOT IN (SELECT goods FROM 销售表C WHERE A.customer = 销售表C.customer)
------解决方案--------------------
[引用:]
- SQL code
select * from 商品表B b where not exists (select 1 from 销售表C c where b.goods=c.goods)