首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

sql多表查询的有关问题

2013-03-27 
sql多表查询的问题表Personidname1jack2mike 表Person_Relation_BookidaIdcId111212313421表Bookidname1aa

sql多表查询的问题
表Person
id     name   
1      jack
2      mike 

表Person_Relation_Book
id     aId    cId
1      1       1
2      1       2
3      1       3
4      2       1

表Book
id    name   
1     aaa
2     bbb
3     ccc


Mysql数据中存在这样三张表,想查询得到这样的结果,得到拥有BookId为1,2,3的PersonId,请教大家用mysql要怎么编写脚本





mysql 数据库
[解决办法]
根据id查id这太容易了吧。select aid from Person_Relation_Book where cid=?就可以了。

如果是要求根据book.name查询person.name,那就需要使用多级子查询完成。
[解决办法]
什么乱七八糟的,看不懂
你是不是要拥有1,2,3所有书的人?
如果1,2,3代表的是book表里面所有的书,那么


 SELECT aId
   FROM Person_Relation_Book prb,
(SELECT count(*) AS cnt FROM Book) b
  GROUP BY prb.aId
 HAVING count(*) = b.cnt


如果是任意的组合的,比如1,3,7,18

 SELECT aId
   FROM Person_Relation_Book
  WHERE cId IN (1,3,7,18)
  GROUP BY aId
 HAVING count(*) = 4

热点排行