两表关联查询一对多,怎么limit从表的数量?

SQL如下 数据库Mysql

SELECT *
FROM manager_devices md
         right JOIN messageed m ON md.uid = m.deviceNumber
         JOIN (
            SELECT id
            FROM messageed
            ORDER BY time DESC
        ) a_order ON m.id = a_order.id
WHERE md.uid IN (23,534,64,134) AND m.time BETWEEN 1472572800 AND 1569772800

也就是想要限制messageed表的查询出来的数量,还需要保证效率的查询。

阅读 5.4k
3 个回答

为什么不左右调换一下位置呢...

大表放到小表外面

建议认真梳理一下查询的需求,
同一个表没有JOIN两次的理由。

在JOIN后 可以跟 AND语句 执行表内过滤 如 LEFT JOIN j_table ON .... AND j_table.createtime<100

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题