客户表A
customer
张三
李四
王二麻子
.
.
.商品表B
goods
商品1
商品2
商品3
商品4
.
.
.销售表C
customer goods
张三 商品1
张三 商品4
李四 商品2
王二麻子 商品3
王二麻子 商品1现要查出没有销售过给客户的商品列表
customer goods
. .
. .
. .
customer
张三
李四
王二麻子
.
.
.商品表B
goods
商品1
商品2
商品3
商品4
.
.
.销售表C
customer goods
张三 商品1
张三 商品4
李四 商品2
王二麻子 商品3
王二麻子 商品1现要查出没有销售过给客户的商品列表
customer goods
. .
. .
. .
(select 1 from 销售表C c where b.goods=c.goods)
CREATE TABLE 客户表A
(
customer VARCHAR(10)
)
INSERT INTO 客户表A
SELECT '张三' UNION
SELECT '李四' UNION
SELECT '王二麻子'
CREATE TABLE 商品表B
(
goods VARCHAR(10)
)
INSERT INTO 商品表B
SELECT '商品1' UNION
SELECT '商品2' UNION
SELECT '商品3' UNION
SELECT '商品4'
CREATE TABLE 销售表C
( customer VARCHAR(10),
goods VARCHAR(10)
)
INSERT INTO 销售表C
SELECT '张三', '商品1' UNION
SELECT '张三', '商品4' UNION
SELECT '李四', '商品2' UNION
SELECT '王二麻子', '商品3' UNION
SELECT '王二麻子', '商品1'SELECT A.customer,B.goods
FROM 客户表A AS A,商品表B AS B
WHERE goods NOT IN (SELECT goods FROM 销售表C WHERE A.customer = 销售表C.customer)
(select 1 from 销售表C c where b.goods=c.goods)支持,一般来说EXISTS比IN的效率要高