
drop table t1
drop table t2
create table t1(id int primary key,nickname varchar(20),playNum varchar(20))
create table t2(id int primary key,nickname varchar(20),playNum varchar(20))
insert into t1 values(1,1,10)
insert into t1 values(2,2,20)
insert into t1 values(3,3,30)
insert into t2 values(1,1,10)
insert into t2 values(2,2,200)
insert into t2 values(3,33,300)
commit
这个问题是集合减的问题
很可惜 你这个是mysql,只能用not in
select id from 客户表where id not in
(
select id from 数据表1 WHERE 上传数据时间>now()-7
union
select id from 数据表2 WHERE 上传数据时间>now()-7
union
select id from 数据表3 WHERE 上传数据时间>now()-7
union
select id from 数据表2 WHERE 上传数据时间>now()-7
)
如果你使用的是oracle,还有效率更高的方法,用关键字minus
select id from 客户表minus
select id from 数据表1 WHERE 上传数据时间>sysdate-7
minus
select id from 数据表2 WHERE 上传数据时间>sysdate-7
minus
select id from 数据表3 WHERE 上传数据时间>sysdate-7
minus
select id from 数据表2 WHERE 上传数据时间>sysdate-7
或者sqlserver使用关键字except
select id from 客户表except
select id from 数据表1 WHERE 上传数据时间>getdate()-7
except
select id from 数据表2 WHERE 上传数据时间>getdate()-7
except
select id from 数据表3 WHERE 上传数据时间>getdate()-7
except
select id from 数据表2 WHERE 上传数据时间>getdate()-7
以上
这个问题是集合减的问题很可惜 你这个是mysql,只能用not in
select?id?from?客户表
where?id?not?in?
(
select?id?from?数据表1?WHERE?上传数据时间>now()-7
union
select?id?from?数据表2?WHERE?上传数据时间>now()-7
union
select?id?from?数据表3?WHERE?上传数据时间>now()-7
union
select?id?from?数据表2?WHERE?上传数据时间>now()-7
)
如果你使用的是oracle,还有效率更高的方法,用关键字minus
select?id?from?客户表
minus
select?id?from?数据表1?WHERE?上传数据时间>sysdate-7
minus
select?id?from?数据表2?WHERE?上传数据时间>sysdate-7
minus
select?id?from?数据表3?WHERE?上传数据时间>sysdate-7
minus
select?id?from?数据表2?WHERE?上传数据时间>sysdate-7
或者sqlserver使用关键字except
select?id?from?客户表
except
select?id?from?数据表1?WHERE?上传数据时间>getdate()-7
except
select?id?from?数据表2?WHERE?上传数据时间>getdate()-7
except
select?id?from?数据表3?WHERE?上传数据时间>getdate()-7
except
select?id?from?数据表2?WHERE?上传数据时间>getdate()-7
以上
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)