首页 新闻 会员 周边

(急!急!急!)sql语句。

0
悬赏园豆:50 [已关闭问题] 关闭于 2012-07-20 15:26

按如下特征:类别、书名、价格、出版社、作者在数据库中找出相似度较高的书籍(前10条)
例如条件: c#1.0, 人民出版社,22

数据库中有如下数据:

第一条:c#2.0,成都出版社,30 

第二条:c#1.0,成都出版社,22

...

第N条:java,成都出版社,100

结果应该是:

第二条:c#1.0,成都出版社,22

第一条:c#2.0,成都出版社,30   

请问这个sql语句应该怎么写呢?

问题补充:

类别和出版社分别是外键,需要联表查询

Superman不会飞的主页 Superman不会飞 | 初学一级 | 园豆:113
提问于:2011-06-10 16:29
< >
分享
所有回答(2)
0

select top 10 * from
(
(
select *,'3' as c from table
where 书名='条件' and 人民出版社='条件' and 价格='条件'
)
union
(
select *,'2' as c from table
where 书名='条件' and 人民出版社='条件'
)union
select *,'1' as c from table
where 书名='条件'
) as bb order by c

dahaiwuliang | 园豆:175 (初学一级) | 2011-06-10 17:13
不对啊。这样查不到数据
支持(0) 反对(0) Superman不会飞 | 园豆:113 (初学一级) | 2011-06-10 17:22
@
(*^__^*) 嘻嘻:我的做法是让满足3个条件的数据设置为3的,两个条件设为2,1个条件设为1,这个语句还有点问题,就是有重复的。所以你可以在每个表中加1个not in的条件来限制。比如说select *,'2' as c from table
where 书名='条件' and 人民出版社='条件' and id not in (select *,'2' as c from table
where 书名='条件' and 人民出版社='条件' and 价格='条件'),效率就有点弱,这要看数据量。
支持(0) 反对(0) dahaiwuliang | 园豆:175 (初学一级) | 2011-06-10 21:55
0

 我觉得这问题到csdn上问,那里的牛人很多。博客园的很多人牛人 都已经不回答问题了。

随风浪迹天涯 | 园豆:932 (小虾三级) | 2011-06-11 13:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册