我有4张表,3张收钱,1张收钱
credittable1
uid | amnt | dat
1 | 50 |31-02-2016
2 | 40 |22-03-2017
...and so on
信用表2
uid | amnt | dat
1 | 60 |01-03-2016
2 | 20 |22-02-2017
...and so on
credittable3
uid | amnt | dat
1 | 70 |03-03-2016
2 | 10 |21-03-2017
...and so on
可借记
uid | amnt | dat
1 | 120 |12-04-2016
2 | 80 |25-02-2017
...and so on
我需要将所有 4 个表组合起来,使其看起来像一个包含贷方和借方的账簿,以及每个用户按日期排序的交易余额。例如,我想打印 uid 1 的账本,那么他的所有交易都应该像账本一样按照贷记或借记交易发生的日期以及该笔交易的余额金额打印(就像银行存折一样).
所有表都非常繁重,包含大量记录,因此我正在寻找一种快速(性能良好)的解决方案。
最终实现需要在 Codeigniter 中完成。
用户可能在表 1 中获得 10(或任意数量)笔交易,以此类推在所有表中。每个表中每个用户的记录数可能不同。
输出看起来像这样:
uid | date | credit | debit | balance amount
请提出实现此目标的方法。我无法决定是否应该使用连接或其他策略来完成它。
最佳答案
您可以合并所有
这四个表,并否定debittable
中的金额:
SELECT uid, amt, dat FROM credittable1 UNION ALL
SELECT uid, amt, dat FROM credittable2 UNION ALL
SELECT uid, amt, dat FROM credittable3 UNION ALL
SELECT uid, -1 * amt, dat FROM debittable
关于mysql - 合并多个表生成 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54269652/