有两张表,没有字段关联,本来也这两张表也没有任何关系,但是现在的需求是要把这两张表里面的数据都得到然后要做分页,要根据这两张表里面分别有的时间字段来排序。
如果把两张表分表做排序后查询出一定数量出来,那么最后合并之后的排序肯定不准,如果是把两张表里面的所有数据都查询出来,然后,合并,排序,再做分页,当数据量太大之后,效率上肯定有缺失。
这样的需求是真实存在的,后台在同事的帮助下,解决的办法是 采用 mysql里面的视图,然后根据实际的业务需求讲相关的表与该视图再来做关联查询
视图就是存放几个表的查询结果集,同数据表的操作没有太多区别。
然后当 基础表做了增删改的适合 对应的视图也会发生变化。
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW `xlg_wallet_st_trade`
AS SELECT
`xlg_wallet_client_add`.`total` AS `trade_salary`,
`xlg_wallet_client_add`.`wid` AS `wid`,
`xlg_wallet_client_add`.`create_time` AS `trade_time`,
`xlg_wallet_client_add`.`status` AS `trade_status`
FROM `xlg_wallet_client_add` union all select `xlg_wallet_user_change`.`total` AS `trade_salary`,`xlg_wallet_user_change`.`wid` AS `wid`,`xlg_wallet_user_change`.`create_time` AS `trade_time`,`xlg_wallet_user_change`.`status` AS `trade_status` from `xlg_wallet_user_change`;