日期:2014-05-17  浏览次数:20422 次

Group by 后子查询的问题
表A:


BookID 书名 分类
1 张三 E
2 李四 B
3 王五 G
4 赵六 F


表B:

BookID ReadName Time
1 12001 -----
2 12011 -----
1 12101 -----
3 12010 -----
1 12100 -----
4 12100 -----
2 12100 -----
1 12100 -----


我先用
SELECT BookId, COUNT(*) AS num FROM 表B GROUP BY BookID 获取到表B中BookId出现的次数

现在想将上面的查询结果和表A关联,就是获取表A中对应的书名和分类怎么办?子查询好像无法把 num 的结果带过去...求解 谢谢!

------解决方案--------------------
SQL code
SELECT A.BookId,A,书名,A.分类,COUNT(*) AS num 
FROM 表B B,表A A 
WHERE A.BookId = B.BookId
GROUP BY A.BookId,A,书名,A.分类

------解决方案--------------------
SELECT A.书名,B.*
 FROM A,(SELECT BookId, COUNT(*) AS num FROM 表B GROUP BY BookID) B 
WHERE A.BookId=B.BookId
这是子查询的一种