求高人给一个跨表模糊查询的SQL语句!可能有点难,非常感谢!

我接手了图书管的一个系统,现在领导要升级,但数据量非常非常大,有800多万条,大概1千多个分类现在分类表BookType里放着书的类别,字段是id,name,bookco... 我接手了图书 管的一个系统,现在领导要升级 ,但数据量非常非常大,有800多万条,大概1千多个分类

现在分类表 BookType里放着书的类别,字段是 id,name,bookcount, 一般name里内容就是“社会学”、“经济学”、“文学”

另外一个表是放书的资料BookList,也就是800多万条书的信息 id,bookname,year,money.......等等字段

现在想要说select出所有类别,并且按BookType.Name的内容去模糊查找BookList.BookName的数量更新显示在BookType.BookCount中

这样的SQL我应该要怎么写好呢?本人对太深奥的SQL不是太懂,还请高人指点,非常感谢!
展开
 我来答
qianlidongqll
2015-07-07 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:80
采纳率:50%
帮助的人:52.4万
展开全部

我来说下自己的想法吧,我建了2张表,数据如下:

和bookList表

我的理解是这样的,sql:

select a.name,count(*)  from bookType a ,bookList b where b.bookname like '%'||a.name||'%' group by a.name

效果如图:

你要的模糊是把第一张表的name作为第二张表的like条件么,我是这样想的。

更多追问追答
追问
非常正确,就是这样,可是800多万条数据用 like的话非常慢,一个小时都出不来,有什么好的方式么?

貌似 like '%'||a.name||'%' 这样写在SQL2008里语法错误 呢
追答
按照种类建个临时表,比如把文学和社会学的拉出来建张表,或加上这个条件,分开来统计,800w应该还行的数据量呀
抄友灵70
2015-07-07 · TA获得超过183个赞
知道小有建树答主
回答量:441
采纳率:50%
帮助的人:188万
展开全部
BookType
id,name,bookcount
1,社会学,50

2,经济学,100

。。。。

BookList
id,bookname,year,money.....

1,A,2005,10
1,B,2014,100
2,C,1998,5
2,D,2000,6
。。。
数据是这样的?
更多追问追答
追问
BookType是,

BookList是下面这样
id,bookname,year,money
1, XXX社会学 , 2015 , 188.00
2, XXX经济学的XX与XX , 2015 , 188.00
3, XXX社会学 , 2015 , 188.00
4, XXX经济学的XX与XX , 2015 , 188.00
追答
书名有规律么?
还是想下面这样
XXX社会学,社会学XXX,X社会学XX
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一颗程序猿o_0
2015-07-07 · TA获得超过6298个赞
知道大有可为答主
回答量:5403
采纳率:77%
帮助的人:1367万
展开全部
你这个是什么数据库? 类别大约有多少个?
更多追问追答
追问
SQL2008 ,大概1千多个分类 ,书有800多万条,只找2015年的话有大概20万条这样
追答
你说的"模糊查找" 是什么意思?
bookname 一定包含bookType.name 吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式