mysql连表排序
高洛峰
高洛峰 2017-04-17 14:58:36
0
3
707
表A
id      info   
1        message1
2        message2
3        message3


表B
id         goods_id
1            1
1            2
2            3
3            4

AB表id连表,查询结果根据B表的相同id个数排序,例如id=1的在B表有两个,排在前面,id=2和id=3的只有一个,排在后面,请问mysql排序语句order by该怎么写?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(3)
Ty80

雷雷

伊谢尔伦

說一下可用的sql語句,效能上不是太好,多了一次對錶b的查詢。

select a.*, b.*
from a
  inner join b on a.id = b.id
  inner join (
    select id, count(*) as cnt
    from b
    group by id
  ) c on a.id = c.id
order by c.cnt, a.id
伊谢尔伦

假如資料量會多的話。
要是我,就重新考慮需求的合理性。能推掉就推掉。
推不掉就在,a表加多一個冗餘欄位 goods_count。然後建構聯合索引。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!