日期:2014-05-18  浏览次数:20489 次

多表查询并分组统计的问题
有如下2表a,b
表a:
id,uid,url
1,123,1.html
2,321,1.html
3,123,2.html
4,124,2.html
5,321,3.html
-----
表b:
uid,uface
123,xx.gif
321,xx.gif
124,xx.gif
----
表a 一个uid对应不同的url
现在想查询表a   按url来分
得到如下结果[注stat为url出现的次数]
id|stat|uid|url
1   |   2     |123|1.html
2   |   2     |321|1.html
3   |   2     |123|2.html
4   |   2     |124|2.html
5   |   1     |321|3.html
不知道有没有写明白,请问有办法这样实现吗

------解决方案--------------------
create table tb(id int,uid int,url varchar(10))

insert into tb values(1,123, '1.html ')
insert into tb values(2,321, '1.html ')
insert into tb values(3,123, '2.html ')
insert into tb values(4,124, '2.html ')
insert into tb values(5,321, '3.html ')

select a.id,b.stat,a.uid,a.url from tb a,
(
select url,count(*) stat from tb group by url
) b
where a.url = b.url
drop table tb

/*
id stat uid url
----------- ----------- ----------- ----------
1 2 123 1.html
2 2 321 1.html
3 2 123 2.html
4 2 124 2.html
5 1 321 3.html

(所影响的行数为 5 行)
*/