MYSQL 主从表查询 ,从表条数的排序

lukkkkka 2015-01-13 02:18:36
http://bbs.csdn.net/topics/390969673?page=1#post-398782282
上次的问题感谢 ky_min

现有 A(id,name)表,B(aId,bId,bName)表
期望得到的查询结果是:
id bId name bName
1 1 张三 张大大
同时限制B表的记录数为3条

ky_min的sql语句:
SELECT a1.*,b1.bid,b1.name
FROM a a1
LEFT JOIN b b1 ON a1.id=b1.aid
WHERE (SELECT COUNT(1)FROM b b2 WHERE b1.aid=b2.aid AND b1.bid>b2.bid)<3

现在问题是如何对B表查询的结果根据bId进行排序
...全文
161 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lukkkkka 2015-01-13
  • 打赏
  • 举报
回复
ky_min 可以实现排序,不好意思,我想说的是B表中的最大三行,现在的结果是随意的三行的排序
还在加载中灬 2015-01-13
  • 打赏
  • 举报
回复
SELECT a1.*,b1.bid,b1.name FROM a a1 LEFT JOIN b b1 ON a1.id=b1.aid WHERE (SELECT COUNT(1)FROM b b2 WHERE b1.aid=b2.aid AND b1.bid>b2.bid)<3 ORDER BY b1.bId 那你应该是不需要用a的id也来排序,这边已经去掉
lukkkkka 2015-01-13
  • 打赏
  • 举报
回复
ky_min 我测试了一下,无法实现排序
还在加载中灬 2015-01-13
  • 打赏
  • 举报
回复
是这个意思吗 SELECT a1.*,b1.bid,b1.name FROM a a1 LEFT JOIN b b1 ON a1.id=b1.aid WHERE (SELECT COUNT(1)FROM b b2 WHERE b1.aid=b2.aid AND b1.bid>b2.bid)<3 ORDER BY a1.id,b1.bId

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧