mysql 两张表查出最近时间的10条数据

场景:现在有出库单据和入库单据两张表,在我的里面有我的单据这个tab页中需要显示距离现在最近的10条单据,这10条单据可以混杂,但必须是这两张表中的单据

我的困惑:
我尝试用

select * 
from t_stock_in as tin, t_stock_out as tout 
where (tin.user_id = 100 and tin.user_id = 100) 
order by create_time DESC  
limit 0,10

这个语句但是这样会连表 ,也就是 tin.user_id = 100 and tin.user_id = 100 mysql 会优化为 tin.user_id = tout.user_id

我就有疑问就是,在不用两个sql语句的情况,怎样不连表的的查出来,因为现在查出来的每一条数据 前面一半是入库后面一半是出库单据,连起来了。

我现在的操作是两张表中都查出10条记录,然后排序,取前10条,单这样其实不太好,想问一下思否的大佬们,有什么方法可以通过sql一次查出来。

阅读 2.6k
1 个回答
select * from (
    select * from tab1 limit 10
    union
    select * from tab2 limit 10
) as t1 order by some_field limit 10
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题