我不确定如何表达这个问题,所以请耐心等待。
表 A 包含以下列:
- ID
- 姓名
- 描述
表 B 包含以下列:
- ID
- a_id(表 A 的外键)
- ip_地址
- 日期
基本上,每当用户查看表 A 中的一行时,表 B 就包含一行。
我的问题是如何根据表 B 中的匹配行数对表 A 结果进行排序。
即
SELECT *
FROM TableA
ORDER BY (SELECT COUNT(*)
FROM TableB
where TableB.a_id = TableA.id)
谢谢!
最佳答案
SELECT a.*
, b.cnt
FROM TableA a
LEFT OUTER JOIN (SELECT a_id
, COUNT(*) cnt
FROM TableB b
GROUP BY a_id) b
ON a.id = b.a_id
ORDER BY b.cnt
关于Mysql:按第二个表中匹配行的数量对结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2869376/