CSDN博客

img duzonglin

一个数据库查询的问题

发表于2004/12/30 10:36:00  641人阅读

分类: 技术性文章

有一个表user_book记录了一名用户拥有的书籍的信息,表的数据如下:
key   userid    bookid
 1   1    2
 2   1    3
 3   1    4
 4   2    1
 5   2    3
这表明这名用户1拥有2,3,4三本书,用户2拥有1,3两本书,以此类推。
现在要用1个SQL语句得到下面问题的结果:
给出任意个bookid,要求找出拥有所给出的所有书籍的用户。这个看似
简单的问题却困扰了我们半天,尝试了很多次以后,终于想出下面的办法,
SQL语句如下:
select a.user from (
     select distinct userid as user,count(distinct bookid) as num
     from user_book where bookid in (1,3) group by userid) as a
 where a.num=2
这个语句的关键之处在于找出用户所拥有的包含在所要找的bookid中书籍
的数量。where语句中a.num=2中的2就是用户所要找的书籍的数量。这个数量
如果跟所要找的书籍数量一致,则此用户满足条件。
问题得以解决
0 0

相关博文

我的热门文章

img
取 消
img即使是一小步
也想与你分享
打开
img