我认为这应该很容易,但它却在逃避我。我的帐户和帐户组之间存在多对多关系。一个帐户可以位于零个或多个组中,因此我使用标准连接表。
Accounts
--------
ID
BankName
AcctNumber
Balance
AccountGroups
-------------
ID
GroupName
JoinAccountsGroups
------------------
AID
GID
我正在使用 MS Access,FWIW。此外,这是针对低带宽情况,因此代码优化并不像简单性/可读性那么重要。
我使用 php 作为表示层,因此 Access 的基本结果就很好。
至于如何处理多结果情况,我实际上有两件事正在尝试构建。第一列在一列中列出了所有组,如下所示:
Bank AcctNum Balance Groups
--------|--------------|----------|----------------
Citi 930938 400 Payroll
HSBC 8372933 100 Monthly, Payroll
Wells 09837 800 -
Chase 8730923 250 Monthly
第二个是主从列表:
Name AcctNum Balance
------------|----------|----------
Payroll (2) 500
Citi 930938 400
HSBC 8372933 100
..................................
Monthly (2) 350
HSBC 8372933 100
Chase 8730923 250
..................................
Wells 09837 800
对于主从细节,我的计划只是从数据库中获取一个大的结果集,并根据需要在 php 中对其进行 munge。由于无论如何在 php 中都会有一些重要的后处理,也许我应该只做三个单独的查询并在那里进行连接。 (因为我对这种语言更熟悉。)
This
SELECT a.BankName, a.AcctNumber, a.Balance, ag.GroupName
FROM (Accounts a
LEFT JOIN JoinAccountsGroups jag
ON a.ID = jag.AID)
LEFT JOIN AccountGroups ag
ON jag.GID = ag.GroupName;
将选择第一个表的数据,但是要连接组(每月、工资单),您需要一个用户定义函数 (UDF),该函数不适用于 Jet,因此需要在 PHP 中进行处理。
您可能想阅读了解 SQL 连接 http://www.devshed.com/c/a/MySQL/Understanding-SQL-Joins/。它指的是 MySQL,但大部分适用于 Jet。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)