22,209
社区成员
发帖
与我相关
我的任务
分享
create table tb1(用户ID varchar(10),地区 varchar(10),产品型号 varchar(10))
insert into tb1 values('张三', 'ALL', 'Moto')
insert into tb1 values('张三', '广东', 'ALL')
insert into tb1 values('张三', '广西', 'Sony')
insert into tb1 values('李四', '广东', 'Moto')
insert into tb1 values('李四', '广东', 'Nokia')
create table tb2(产品型号 varchar(10),销售地区 varchar(10),批发价 int)
insert into tb2 values('Moto' , '广东', 1000 )
insert into tb2 values('Moto' , '北京', 1010 )
insert into tb2 values('Sony' , '广东', 1200 )
insert into tb2 values('Sony' , '广西', 1210 )
insert into tb2 values('Nokaia' , '广西', 1500 )
go
--张三的
select distinct m.* from tb2 m , tb1 n
where (
((m.销售地区 = n.地区 and n.地区 <> 'all') or (n.地区 = 'all')) and
((m.产品型号 = n.产品型号 and n.产品型号 <> 'all') or (n.产品型号 = 'all')) and
n.用户ID = '张三'
)
/*
产品型号 销售地区 批发价
---------- ---------- -----------
Moto 北京 1010
Moto 广东 1000
Sony 广东 1200
Sony 广西 1210
(所影响的行数为 4 行)
*/
--李四的。
select distinct m.* from tb2 m , tb1 n
where (
((m.销售地区 = n.地区 and n.地区 <> 'all') or (n.地区 = 'all')) and
((m.产品型号 = n.产品型号 and n.产品型号 <> 'all') or (n.产品型号 = 'all')) and
n.用户ID = '李四'
)
/*
产品型号 销售地区 批发价
---------- ---------- -----------
Moto 广东 1000
(所影响的行数为 1 行)
*/
drop table tb1 , tb2
create table tb1(用户ID varchar(10),地区 varchar(10),产品型号 varchar(10))
insert into tb1 values('张三', 'ALL', 'Moto')
insert into tb1 values('张三', '广东', 'ALL')
insert into tb1 values('张三', '广西', 'Sony')
insert into tb1 values('李四', '广东', 'Moto')
insert into tb1 values('李四', '广东', 'Nokia')
create table tb2(产品型号 varchar(10),销售地区 varchar(10),批发价 int)
insert into tb2 values('Moto' , '广东', 1000 )
insert into tb2 values('Moto' , '北京', 1010 )
insert into tb2 values('Sony' , '广东', 1200 )
insert into tb2 values('Sony' , '广西', 1210 )
insert into tb2 values('Nokaia' , '广西', 1500 )
go
select distinct m.* from tb2 m , tb1 n
where (
((m.销售地区 = n.地区 and n.地区 <> 'all') or (n.地区 = 'all')) and
((m.产品型号 = n.产品型号 and n.产品型号 <> 'all') or (n.产品型号 = 'all')) and
n.用户ID = '张三'
)
drop table tb1 , tb2
/*
产品型号 销售地区 批发价
---------- ---------- -----------
Moto 北京 1010
Moto 广东 1000
Sony 广东 1200
Sony 广西 1210
(所影响的行数为 4 行)
*/
select a.批发价 from 产品批发 a
join 权限控制表 b on a.产品型号=b.产品型号 and a.地区=b.地区
where 用户ID=''
select m.* from 产品批发 m , 限权控制表 n
where ((m.销售地区 = n.地区 and n.地区 <> 'all') or n.地区 = 'all') and m.产品型号 = n.产品型号 and n.用户ID = '张三')