首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一句SQL语句,能不能不用JOIN解决办法

2012-02-01 
求一句SQL语句,能不能不用JOIN现有一数据表项目IDKEYVALUE项目115项目123项目132项目214项目221项目237项

求一句SQL语句,能不能不用JOIN
现有一数据表
项目IDKEYVALUE
项目115
项目123
项目132
项目214
项目221
项目237
项目313
项目324
项目336

要求:
KEY=1,VALUE <=5;
KEY=2,VALUE <=3;
KEY=3,VALUE <=5;
取出满足以上3个条件的项目(当然,KEY对应的VALUE值可以变化)

理论上结果应该是项目1

我能想到的就是把自己这张表JOIN   N次,每次应用不同的KEY和VALUE值.
各位看看能不能不用JOIN就把需要的记录取出来,因为实际的KEY值数量可能是变化的,而表中数据量又不小...一旦JOIN太多影响效率的吧....

[解决办法]
--不好意思,上面两个错了.

create table tb(项目ID varchar(10),[KEY] int,VALUE int)
insert into tb values( '项目1 ',1,5)
insert into tb values( '项目1 ',2,3)
insert into tb values( '项目1 ',3,2)
insert into tb values( '项目2 ',1,4)
insert into tb values( '项目2 ',2,1)
insert into tb values( '项目2 ',3,7)
insert into tb values( '项目3 ',1,3)
insert into tb values( '项目3 ',2,4)
insert into tb values( '项目3 ',3,6)

select t1.项目ID from
(select * from tb where [KEY]=1 and VALUE <=5) t1,
(select * from tb where [KEY]=2 and VALUE <=3) t2,
(select * from tb where [KEY]=3 and VALUE <=5) t3
where t1.项目ID = t2.项目ID and t1.项目ID = t3.项目ID

drop table tb

/*
项目ID
----------
项目1

(所影响的行数为 1 行)

*/

热点排行
Bad Request.