求一条sql语句,查询2个表,根据其中一个表的数据行数进行排序的问题

表A
-------------------
字段

ID 姓名
-------------------

表B
-------------------
字段

ID 购买产品名称
-------------------

表A 是用户表,用来存放用户的数据 (1对1)
表B 是存放用户购买产品的数据 (1对多)

用户每够买一个产品,产品表就会多存储一行数据

求一条SQL语句

查询 表A.ID 按照 表B里面的改用户购买的产品的数据行数 进行排序

请写出具体的SQL语句

谢谢
补充:

表A
-------------------
字段

ID 姓名
-------------------

表B
-------------------
字段

ID 购买产品名称 用户表ID(存储的是A表.ID)
-------------------

select * from 表A ORDER BY (SELECT COUNT(1) FROM 表B WHERE 表B.ID=表A.ID)

WHITE_WIN

语法错误....

第1个回答  2008-10-23
select *,
(SELECT COUNT(1) FROM 表B WHERE 用户表ID=表A.ID) as 行数
from 表A
ORDER BY 行数 desc
第2个回答  2008-10-26
SELECT A.ID FROM A, B
WHERE A.ID = B.ID
GROUP BY A.ID
ORDER BY COUNT(B.ID) DESC
第3个回答  2008-10-25
用SELECT实现
第4个回答  2008-10-14
技术问题,无可奉告
第5个回答  2008-10-11
你都没说是什么数据库系统……假设是MySQL好了……

SELECT COUNT(b.*) AS 该用户总购买数, a.姓名 FROM 表B b LEFT JOIN 表A a ON (a.ID = b.用户表ID) ORDER BY 该用户总购买数 DESC

得到的结果类似:
总数 | 姓名
20 | 张三
15 | 李四
2 | 王五

不知道是不是你要的结果?
相似回答