【发布时间】:2017-04-01 15:22:56
【问题描述】:
我有一个包含两个 MySQL 表的项目;
- 分类帐时间表
- 总帐
第一个表 LedgerSchedule 包含在 GeneralLedger 中使用的可能类型。 GeneralLedger 中的每条记录都可以是 CREDIT 或 DEBIT 交易(来自 LedgerSchedule 类型)。
现在,如果我想使用 GeneralLedger 交易创建交易调查,我会在我的项目中运行三个查询;
- 选择可能的 LedgerSchedule
- 为每个 LedgerSchedule 选择 CREDIT GeneralLedgers
- 为每个 LedgerSchedule 选择 DEBIT GeneralLedgers
在这三个查询之后,我将 (DEBIT-CREDIT) 金额保存回每个 LedgerSchedule。 这可行,但速度很慢(尤其是当有许多 LedgerSchedule 时)。 为了加快速度,我想用一个 MySQL 查询来完成。
总结一下,我想在一个查询中选择 LedgerSchedule 及其 CREDIT/DEBIT GeneralLedgers 金额。
第一次尝试(在本例中,我仅从 LedgerSchedule 中选择 ID);
但这只会选择具有借记和贷记交易的总帐。将其更改为
WHERE LS.ID = DEBIT.ID
OR LS.ID = CREDIT.ID
也不行。在此旁边,我还想选择没有任何 GeneralLedgers DEBIT/CREDIT 交易的 LedgerSchedule。
| LedgerSchedule | Debit | Credit |
| 1 | €30.00 | |
| 2 | | €23.45 |
| 3 | | |
| 4 | €15.15 | €10.00 |
| 5 | | |
我怎样才能做到这一点?甚至可能在一个查询中没有多个 Select ...
【问题讨论】:
-
天啊,所有的大写都让你的 SQL 读起来很痛苦,SQL 中的变量(例如列名)通常是小写的,并且只有控制字,例如“SELECT”大写,它使它更具可读性....
-
同样的原因也是为什么路标不是大写的,是
HARDER (SLOWER) TO UNDERSTAND UPPER CASE WRITTEN TEXT BLOCKS。 -
编辑您的问题并提供示例数据和所需的结果。