- 最近开发遇到了一个很有意思的需求,背景是财务对账系统的一个平账页面的分页查询,对账的两方一方是订单明细,一方是流水明细,两张表无主表区分,双方表都有可能因为推送数据的失败导致其中一张表为空,所以实现两表联查分页时就不能使用普通的left join,兜兜转转发现union可以满足基本的需求。
- 关于SQL的inner join、left join、right join、full outer join、union、union all的区别,附其他人总结的图文参考链接:
https://www.cnblogs.com/logon/p/3748020.html
union的select语句使用方法注意:
- 必须拥有相同数量的列
- 列必须拥有相似的数据类型
- 每条select语句中列的顺序必须相同
理想情况下我们认为订单表和流水表的数据结构是一模一样的,所以此时后台打印出的sql应为:
SELECT
ro.trans_Id,
ro.batch_No,
ro.order_No order_No,
ro.trans_Date trans_Date,
ro.currency currency,
ro.exchange_rate,
ro.orders_Amount,
ro.local_orders_Amount
FROM
check_base_receipt_or